我有一张这样的桌子。对于每个学生,对于每个学期的栏目更改,我想增加学期编号。当学生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
答案 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;