MySQL的排名函数为我们提供了强大而灵活的方式来处理数据的排序和排名,通过Mysql官网学习整理如下:
最常见的就是学校学生成绩排名,想要查看学生语文成绩排名情况,结果展示如下:
数据准备:
需求:想要查看每门学科对应的成绩排名,排名不重复不间断
row_number()使用直接根据学科分组,分数降序即可得到结果;
通过定义变量实现,可以理解为select是一行行记录查询出来的,弄清变量的赋值的先后顺序,每行该变量的值,那么就清楚了。
需求:想要查看每门学科对应的成绩排名,排名会重复间断
rank()使用直接根据学科分组,分数降序即可得到结果;
通过定义变量实现,借助根据步骤2中顺序排名,不重复跳跃的序号的变量实现,弄清变量的赋值的先后顺序,每行该变量的值,那么也就处理了。
需求:想要查看每门学科对应的成绩排名,排名重复不间断
dense_rank()使用直接根据学科分组,分数降序即可得到结果;
通过定义变量实现,理解了步骤2和步骤3的排名实现,这也就简单了。