MySql实现排名,分数相同并列排序

dense_rank()

对结果集进行排序,排名值没有间断。 特定行的排名等于该特定行之前不同排名值的数量加一。

DENSE_RANK ( ) OVER ( [ <partition_by_clause> ] < order_by_clause > )

利用dense_rank(),按每门课程成绩的高低进行排序,sql如下:

SELECT
    final_score,
    dense_rank ( ) OVER ( ORDER BY final_score DESC ) AS sort
FROM
    ass_assessment_detail 
ORDER BY
    final_score DESC
SELECT
    final_score,
    rank ( ) OVER ( ORDER BY final_score DESC ) AS sort
FROM
    ass_assessment_detail 
ORDER BY
    final_score DESC

从上述执行结果可以看出:

dense_rank函数和rank()函数的相同点在于相同的成绩排名相同,区别是rank()是不连续的,dense_rank()是连续的。


版权声明:本文为qq_32431981原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。