sql 先分组后再取5条数据 [转]

 row_number 函数里面有个partition by可以先分组

================ 

SELECT  * FROM (SELECT rid = ROW_NUMBER() OVER (PARTITION BY 分组 ORDER BY 排序 DESC), * FROM 表名) AS T WHERE rid <= 10 

==========

SELECT * FROM 
(SELECT rid = ROW_NUMBER() OVER 
(PARTITION BY dept ORDER BY [time] DESC), * FROM TestTable) AS T WHERE rid <= 5  

 ===========

with newtable as (
select row_number() over(partition by dept order by time) as rid, * from myorder
)

select * from newtable where newtable.rid <= 5 

原文地址:https://www.cnblogs.com/barrysgy/p/2173185.html