2

这有点像这样的问题:

T-SQL:如何使用 MIN

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

谢谢

4

2 回答 2

3

使用CTEROW_NUMBER:_

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

排名函数

于 2013-09-06T22:53:06.563 回答
2
SELECT 
  ID, SomeVal
FROM (
   SELECT ID, SomeVal, row_number() over(PARTITION BY id ORDER BY SomeVal ASC) rn
   FROM [TableName]
) T
WHERE rn <= 4

这为您提供了最低的前 4 个SomeValID

于 2013-09-06T22:53:12.343 回答