假设 学生成绩表为students (学生学号为 stuNO, 学期为 semester, 平均分为 avgMark)
1.连续排名(分数相同,排名也不同):
select students.*,row_number() over (partition by semester order by avgmark dese) as avg_rank from students
2.相同的平均分排相同位,并且不连续排名:
select students.*,rank() over (partition by semester order by avgmark dese) as avg_rank from students
3.相同的平均分排相同位,并且连续排名:
select students.*,dense_rank() over (partition by semester order by avgmark dese) as avg_rank from students