学生成绩表(学生学号,学期,平均分,)如何统计各学生在各学期的成绩排名.也就是说.每个学生在每个学期都有一个成绩名次.

解决方案 »

  1.   

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

  2.   

    多谢hemingwang0902()了,直到现在才又上这个站
      

  3.   

    用row_number()分析函数进行处理