これは、次のような質問です。
しかし、グループごとに最低 4 つの値を返すようにします。
ありがとうございました
でCTEを使用しROW_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
SELECT
ID, SomeVal
FROM (
SELECT ID, SomeVal, row_number() over(PARTITION BY id ORDER BY SomeVal ASC) rn
FROM [TableName]
) T
WHERE rn <= 4
これにより、SomeVal
ごとに最初の 4 つの最小値が得られますID
。