SQL 分组取每组第N行数据

SELECT *,(SELECT count(1)
FROM 个人排名 B
WHERE 个人排名.单位=B.单位
      and 个人排名.最终得分>B.最终得分
) as 行号
FROM 个人排名  where
(SELECT count(1)
FROM 个人排名 B
WHERE 个人排名.单位=B.单位
      and 个人排名.最终得分>B.最终得分
)=1 --N行-1

 

要点:行号就是比当前行的值大或者小的排序行的个数

SELECT count(1)
FROM 个人排名 B
WHERE 个人排名.单位=B.单位
and 个人排名.最终得分>B.最终得分

 

参考http://hi.baidu.com/wangzhiqing999/blog/item/46903f55aa5143818d543069.html

posted @ 2011-09-21 11:03  ruijian  阅读(395)  评论(0编辑  收藏  举报