SQL Server 分组排序后取第N条数据(或前N条)
记录一个分组取前N条数据的SQL:
1 SELECT * 2 FROM ( SELECT ROW_NUMBER() OVER ( PARTITION BY t1.X ORDER BY t1.Y ) AS RNUM , 3 * 4 FROM Table1 t1 5 ) AS T 6 WHERE T.RNUM = N
X:分组的字段;
Y:排序的字段;
N:第N条
本文介绍了一种在SQLServer中实现分组排序后取特定分组内第N条数据的方法。通过使用ROW_NUMBER()窗口函数,结合PARTITION BY和ORDER BY子句,可以有效地从每个分组中选取指定位置的数据。这对于处理复杂的数据筛选场景非常有用。
记录一个分组取前N条数据的SQL:
1 SELECT * 2 FROM ( SELECT ROW_NUMBER() OVER ( PARTITION BY t1.X ORDER BY t1.Y ) AS RNUM , 3 * 4 FROM Table1 t1 5 ) AS T 6 WHERE T.RNUM = N
X:分组的字段;
Y:排序的字段;
N:第N条
383
1542
779

被折叠的 条评论
为什么被折叠?
&spm=1001.2101.3001.5002&articleId=92059001&d=1&t=3&u=0b2b307ce49344d29fa35c85ae301aef)