T-SQL增量更新组编号

时间:2017-11-23 18:57:08

标签: sql sql-server tsql

我有一张这样的桌子。对于每个学生,对于每个学期的栏目更改,我想增加学期编号。当学生ID更改时,学期编号应从1开始。我的学期编号暂时为空,我希望更新它。任何简单的快速解决方我读到了有关Dens_Rank的信息,我不确定它是否适用于此。

StudentId  | Term   |Course_Number| Semester_Number(Expected)

1             0010     ENG            1
1             0010     AGR            1
1             0020     MAT            2
1             0020     ...            2
1             0110     ...            3
1             0110     ...            3
2             0010     ENG            1
2             0010     MAT            1     
2             0020     PHY            2
3             0010     MAT            1
3             ...
3

1 个答案:

答案 0 :(得分:1)

如果我理解正确,你可以这样做:

select t.*,
       dense_rank() over (order by studentid, term) as semester_number
from t;

我改善了我的承诺:

select t.*,
       dense_rank() over (partition by studentid order by term) as semester_number
from t;