MySQL窗口函数
窗口函数,也称为OLAP函数,联机分析处理。能够将表中数据划分一个范围,对范围内的数据进行某种处理,可以是聚合,也可以是排序,也可以是求第一个记录或者最后一个记录等等。对数据进行实时分析处理。
作用:
1.解决排名问题。e.g.每个班级按照成绩排名
2.解决top-n问题。e.g.每个班级前两名学生
1.语法
<窗口函数> over (partition by <列清单> order by <列清单>)
partition by(分组):用来圈定所要进行操作的对象的范围 划分一个窗口
order by(排序):用来指定按照哪列、何种顺序进行排序 asc升序–desc降序
创建窗口函数的关键字
OVER - 表示窗口函数的开始,这将使聚合的结果作为一个列添加到输出表中。
PARTITION BY 在表中创建数据组,聚合结果将被执行。
ORDER BY - 根据给定的列对数据进行排序
2.分类
- 专用窗口函数:rank(),dense_rank(),row_number()
- 汇总函数:max(),min(),count(),sum(),avg()
注意: