在SQL中,有没有一种简单的方法来返回包含一列中值的顶部实例的所有行?
给出下表...
Size Color Price
S Red 2
S Green 43
S Blue 5
M Olive 3
M Black 6
M Orange 3
L Purple 98
L Red 4
L Blue 9
我想回来...
Size Color Price
S Red 2
M Olive 3
L Purple 98
您可以尝试使用递归CTE
函数和ROW_NUMBER()
,以实现此目的:
;WITH CTE AS(
SELECT myTable.*
, RN = ROW_NUMBER()OVER(PARTITION BY Size ORDER BY ID)
FROM myTable
)
SELECT * FROM CTE
WHERE RN = 1