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

一条不知道是简单还是复杂的sql语句,高手帮忙
现在数据是这样的
hid price rank
1 120 2
1 150 0
3 180 2
4 160 2
我要得到的结果如下
hid price rank
1 150 0
3 180 2
4 160 2
要求就是根据hid分组后 根据rank排序 取rank小的这条数据
sql语句如何写

------解决方案--------------------
SQL code
select hid,price,rank from 
(select row_number()over(partition by hid order by rank) as rank1,* from tb) a where rank1=1