考虑这个表:
create table t (EventId int
,Section int
,PlayerName nvarchar(50)
,Score int
,Rank int
)
Run Code Online (Sandbox Code Playgroud)
我试图写T-SQL确实有EVENTID作为输入,并使用该RANK功能由得分排名,但与部分分离(在每一节等等级个别每个部分,1级为最高分),然后设置/更新Rank值
kev*_*v22 12
UPDATE tbl
SET [Rank] = t2.[Rank]
FROM tbl t1
LEFT OUTER JOIN
(
SELECT EventId
, Section
, PlayerName
, Score
, RANK() OVER (PARTITION BY EventId, Section ORDER BY Score desc) as [Rank]
FROM tbl
) as t2
ON t1.EventId = t2.EventId
AND t1.Section = t2.Section
AND t1.PlayerName = t2.PlayerName
Run Code Online (Sandbox Code Playgroud)
这里是上SEDE运行.