Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.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 从组中选择最低的n值_Sql Server_Tsql_Greatest N Per Group - Fatal编程技术网

Sql server 从组中选择最低的n值

Sql server 从组中选择最低的n值,sql-server,tsql,greatest-n-per-group,Sql Server,Tsql,Greatest N Per Group,这有点像这样的问题: 但我希望它返回每组最低的4个值 谢谢您请与以下内容一起使用: 这将为每个ID提供最低的前4个SomeVal值。请参阅。只需选择排序并过滤行号即可。一般来说,这个标签是最大的n个组,不管它是不是最小的n个组。 WITH CTE AS( SELECT T.*, RN=ROW_NUMBER()OVER(PARTITION BY Col1 Order By Col2 ASC) FROM dbo.TableName T ) SELECT * FROM CTE WHERE

这有点像这样的问题:

但我希望它返回每组最低的4个值

谢谢您

请与以下内容一起使用:

这将为每个ID提供最低的前4个SomeVal值。

请参阅。只需选择排序并过滤行号即可。一般来说,这个标签是最大的n个组,不管它是不是最小的n个组。
WITH CTE AS(
   SELECT T.*, RN=ROW_NUMBER()OVER(PARTITION BY Col1 Order By Col2 ASC)
   FROM dbo.TableName T
)
SELECT * FROM CTE WHERE RN <= 4
SELECT 
  ID, SomeVal
FROM (
   SELECT ID, SomeVal, row_number() over(PARTITION BY id ORDER BY SomeVal ASC) rn
   FROM [TableName]
) T
WHERE rn <= 4