日期:2014-05-18  浏览次数:20613 次

问一个SQL语句。
数据库

表格简化结构,

col1 col2 col3 
1 2 1
1 2 2
2 2 4
2 3 2
3 3 5
3 2 3

这是3个列。首先group by col2那么分组以后我想用having 对每个组进行排列,不是这个数据结果,
也就是说
最后结果应该是 

1 2 1
1 2 2
3 2 3
3 2 4
2 3 2
3 3 5


然后 获取每个组的第一条数据

也就是 

1 2 1
2 3 2 

谢谢各位高手 帮小弟哈



------解决方案--------------------
select * from
(select *,row_number() over(partition by col2 order by col2) as rownum
from col表) as tb1
where rownum<2
------解决方案--------------------
SQL code
select col1,col2,col3 from(select *,rank() over (order by col2) as nn1,rank() over (order by col2,col1,col3) as nn2 from table1 
) a where nn1=nn2