sql 获取每个分组的前N条记录的写法

SELECT  *
FROM    (
--根据 tb表的name进行分组,根据年龄排序
          SELECT    * ,
                    ROW_NUMBER() OVER ( PARTITION BY name ORDER BY age DESC ) rid
          FROM      tb 
        ) AS t
        --取每个名字的前十个数据记录
WHERE   rid <= 10

 

posted @ 2019-04-01 17:16  洛晨随风  阅读(480)  评论(0编辑  收藏  举报