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
原文地址:https://www.cnblogs.com/llcdbk/p/10637597.html