我正在寻找为表格分配行号的方法
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(),它不起作用。对这个世界的任何投入都很棒:)
谢谢!!!!
答案 0 :(得分:3)
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()
...