前言
OVER用于为行定义一个窗口,它对一组值进行操作,不需要使用GROUP BY子句对数据进行分组,能够在同一行中同时返回基础行的列和聚合列。这是MYSQL8开始的有的特性,使用起来使sql更简洁高效。
下面直接看例子(ps:例子举sum()聚合函数,其他聚合函数也是类似的,举一反三即可):
例1: 不用group by 的情况下统计出男性和女性这两个性别各自的总分。
比如user表中有这样一些数据:
现在我不用group by 的情况下统计出男性和女性这了两个性别各自的总分
统计出来以后用group by 的方式验证一下:
例2:分组后统计总的数据
例子中已通过性别GENDER字段进行了分组,但是我现在还想统计所有男+女的总分。
用sql验证一下上面的结果。
例3 用窗口函数进行排序
我另一篇博客有详解,下面给出链接:
https://blog.csdn.net/qq_41934680/article/details/120351567