Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server sql server-按组选择前x行_Sql Server - Fatal编程技术网

Sql server sql server-按组选择前x行

Sql server sql server-按组选择前x行,sql-server,Sql Server,我有一个问题,我浪费了太多的时间玩。它可以简化为: 平台:SQL Server 你有一张有年龄和zipcode的桌子 列出每个zipcode中最年长的5个人 我可以看到如何使用游标,但是有没有办法使用top和groupby来实现这一点 感谢所有的投入 您需要使用行数分析函数 SELECT * FROM ( SELECT name, age, zipcode, ROW_NUMBER() OVER ( PARTITION by zipc

我有一个问题,我浪费了太多的时间玩。它可以简化为:

平台:SQL Server 你有一张有年龄和zipcode的桌子 列出每个zipcode中最年长的5个人 我可以看到如何使用游标,但是有没有办法使用top和groupby来实现这一点


感谢所有的投入

您需要使用行数分析函数

 SELECT * 
 FROM
 ( SELECT name, 
    age, 
    zipcode,
    ROW_NUMBER() OVER          
    ( PARTITION by zipcode 
       order by age desc) 
    as seq
   ) T
  Where T.seq <=5
SELECT *
FROM (
      SELECT *
           ,ROW_NUMBER() OVER (PARTITION BY zipcode ORDER BY Age DESC) rn
      FROM TableName
     )A
WHERE RN <= 5