l窗口函数之rank()函数的使用
1、窗口函数之rank()使用场景:
在mysql中进行分组(group by)后,还需要组内排名,例如各班级成绩排名、市场各不同小组业绩排名、不同地区水果售价排名等。
2、什么是窗口函数?
窗口函数,也叫OLAP函数(Online Anallytical Processing),即联机分析处理,可以对数据库数据进行实时分析处理。
3、语法规则:
select 窗口函数名称 over (partition by 分组的列名,order by 排序的列名)as '你想取的名字'
数据库中表demo的数据如下:

表数据参考
4、实际查询语句:
特别注意:窗口函数是对where和group by子句处理后的结果进行操作,因此按照SQL语句的运行顺序,窗口函数一般放在select子句中,切记!
SELECT
id,
NAME AS '姓名',
score AS '分数',
class AS '班级',
rank() over ( PARTITION BY class ORDER BY score DESC ) AS '班级名次'
FROM
backup_csm.`demo`
5、查询结果:
查询结果首先是按照班级class进行分组,分组后组内按照分数score进行desc降序排名排名,如下图。

查询结果
特别注意:如果分数相同,排名会有跳级,假设上面数据同组张三的分数也为90分,那么他将和姓名为“安一”的并列为第一名,如下图。

同组同分情况
6、结束:
窗口函数当然不止这一个函数,还有很多其他函数,例如还有聚合函数【max(),min()】,取值函数【first_value(),nth_value()】等
相关推荐
-
PHP8种变量类型的详细讲解2025-02-22 00:32:24
-
php+apache 和 php+nginx的区别2025-02-22 00:21:27
-
PHP:与workerman结合实现定时任务2025-02-22 00:15:57
-
Nginx的Rewrite规则与实例2025-02-22 00:15:39
-
MySql中身份证字段的简单脱敏介绍2025-02-22 00:15:36