MySQL - 排序函数 Rank() Over()Dense_rank() Over()Row_number() Over()

Posted Lux_Sun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL - 排序函数 Rank() Over()Dense_rank() Over()Row_number() Over()相关的知识,希望对你有一定的参考价值。

Rank() Over()

rank() over(partition by subject order by score desc) rank

查出指定条件后进行排名。特点是,加入是对学生排名,使用这个函数,成绩相同的两名是并列,下一位同学空出所占的名次。

Dense_rank() Over()

dense_rank() over(partition by subject order by score desc) rank

与rank() over的区别是,两名学生的成绩并列以后,下一位同学并不空出所占的名次。

 

Row_number() Over()

row_number() over(partition by subject order by score desc) rank

这个函数不需要考虑是否并列,哪怕根据条件查询出来的数值相同也会进行连续排名。

以上是关于MySQL - 排序函数 Rank() Over()Dense_rank() Over()Row_number() Over()的主要内容,如果未能解决你的问题,请参考以下文章

MySql中row_number()rank()dense_rank() 的区别

窗口函数--排序函数

oracle sql rank函数取排序值

开窗函数

MySQL实现常用分析函数

Oracle中排序函数的用法之ROW_NUMBER()_RANK()_DENSE_RANK() OVER()的区别