我正在寻找分配表格行号的方法,如下所示
Roll No Name Score
1 ABC 10
1 ABC 10
1 DEF 8
2 ASC 9
2 YHN 4
3 IOP 5
3 YHN 4
我正在寻找一种将卷号分配为Rownumber()的方法
Roll No Name Score Row_Number
1 ABC 10 1
1 ABC 10 2
1 DEF 8 3
2 ASC 9 1
2 YHN 4 2
3 IOP 5 1
3 YHN 4 2
我正在尝试使用Row_number(),这是行不通的。在这个世界上的投入很大:)
谢谢 !!!!
最佳答案
SELECT [Roll No], Name, Score, [ROW_NUMBER] =
ROW_NUMBER() OVER (PARTITION BY [Roll No] ORDER BY Score DESC)
FROM dbo.table
ORDER BY [Roll No], [ROW_NUMBER];
如果您以后决定要以其他方式处理关系,请使用
RANK()
或DENSE_RANK()
代替ROW_NUMBER()
。关于sql-server - 使用ROW_NUMBER应用分组排名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9672853/