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()的作用是划定窗口,分析函数的左右是在窗口内对记录进行计算

 

 

 

-------------------------------------------------------------分割线-------------------------------------------------------------

 

posted @ 2023-06-06 14:36  叫我林大官人  阅读(47)  评论(0)    收藏  举报