mysql-窗口函数
转:https://zhuanlan.zhihu.com/p/456560406
什么是 窗口
--窗口对于group分组和聚合函数等,窗口是固定的,就是每一组,比如想知道每个学生的平均成绩,指定的组就是每个学生的id,聚合函数在这个id划定的窗口内对所有记录进行计算。这是静态窗口,窗口内的记录相互关联,窗口外的记录彼此无关。
--但实际业务中我们往往需要处理排名、累加、移动平均、取前N个这样的需求,每个记录的排名需要动态计算它在所有数据的位置;累加需要动态计算前面素有记录的和;移动平均要滑动计算;取前N个也是需要计算排名。这时候就需要动态窗口或者叫滑动窗口。
什么是 窗口函数
--窗口函数 是动态处理数据的一类函数,也叫OLAP函数(Online Anallytical Processing,联机分析处理),可以对数据库数据进行实时分析处理。
--窗口函数 由两部分组成,“分析函数” + “窗口函数”,语法如下
分析函数 over (partition by "要分组的列,多个列用多好分割" order by "要排序的列" rows between "开始的行" between "结束的行")
--over()的作用是划定窗口,分析函数的左右是在窗口内对记录进行计算
-------------------------------------------------------------分割线-------------------------------------------------------------
浙公网安备 33010602011771号