Pat*_*ick 4 sql sql-server sql-server-2008
对不起,垃圾标题,但希望这将解释:
鉴于表
name | data
---------------------
1 | 1000
1 | 2000
1 | 3000
2 | 1500
2 | 2500
2 | 3500
Run Code Online (Sandbox Code Playgroud)
我希望能够为数据值排序的所有名称选择顶部(x).因此,如果x = 2,则返回
name | data
---------------------
1 | 2000
1 | 3000
2 | 2500
2 | 3500
Run Code Online (Sandbox Code Playgroud)
;with cte AS
(
SELECT name, data, ROW_NUMBER() OVER (PARTITION BY name ORDER BY data DESC) AS RN
FROM YourTable
)
SELECT name, data
FROM cte
WHERE RN<=2
ORDER BY name, data
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
187 次 |
| 最近记录: |