我有一张如下表.
Customer Order Rank
1 12 3
1 14 7
2 15 6
2 16 4
2 17 2
2 21 1
3 24 5
3 25 6
3 27 7
Run Code Online (Sandbox Code Playgroud)
现在,我想选择除每个客户的排名最小的行之外的所有行.它应该如下所示.
Customer Order Rank
1 14 7
2 15 6
2 16 4
2 17 2
3 25 6
3 27 7
Run Code Online (Sandbox Code Playgroud)
你可以使用CTE+ ROW_NUMBER:
WITH CTE AS
(
SELECT Customer, [Order], Rank,
RN = ROW_NUMBER() OVER (PARTITION BY Customer ORDER BY Rank)
FROM dbo.Customers
)
SELECT Customer, [Order], Rank
FROM CTE
WHERE RN > 1
ORDER BY Customer, Rank DESC
Run Code Online (Sandbox Code Playgroud)
演示:http://sqlfiddle.com/#!6/444be/3/0
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |