Abe*_*ler 4 sql t-sql sql-server sql-server-2008
说我有以下查询:
WITH TEMP AS
(
select 1 as id, 4 as value
UNION
SELECT 2, 53
UNION
SELECT 3, 1
UNION
SElECT 4, 474
UNION
SELECT 5, 53
)
SELECT *,
ROW_NUMBER() OVER (ORDER BY value)
FROM TEMP
Run Code Online (Sandbox Code Playgroud)
这将返回以下内容:
3 1 1
1 4 2
2 53 3
5 53 4
4 474 5
Run Code Online (Sandbox Code Playgroud)
我希望两行53和53具有相同的行号(3)和最后一行以保持它的行号5.我假设这不能使用ROW_NUMBER完成.有人能指出我正确的方向让我开始这个吗?
小智 6
而不是使用ROW_NUMBER,你想使用RANK.
SELECT *,
RANK() OVER (ORDER BY value)
FROM TEMP
Run Code Online (Sandbox Code Playgroud)