【数据库】窗口函数介绍
目录
前言
文章改编自CSDN博客,完整内容见:MYSQL操作实战-窗口函数
窗口函数分类
窗口:记录集合
窗口函数:在满足某些条件的记录集合上执行的特殊函数,对于每条记录都要在此窗口内执行函数。有的函数随着记录的不同,窗口大小都是固定的,称为静态窗口;有的函数则相反,不同的记录对应着不同的窗口,称为滑动窗口。
窗口函数和普通聚合函数的区别
-
聚合函数是将多条记录聚合为一条;窗口函数是每条记录都会执行,有几条记录执行完还是几条。
-
聚合函数也可以用于窗口函数。
窗口函数的基本用法
使用窗口函数的方法是:函数名 OVER 子句
over
关键字用来指定函数执行的窗口范围,若后面括号中什么都不写,则意味着窗口包含满足WHERE
条件的所有行,窗口函数基于所有行进行计算;如果不为空,则支持以下4种语法来设置窗口:
WINDOW name AS window
:给窗口指定一个别名。如果SQL中涉及的窗口较多,采用别名可以看起来更清晰易读;PARTITION BY
子句:窗口按照哪些字段进行分组,窗口函数在不同的分组上分别执行;ORDER BY
子句:按照哪些字段进行排序,窗口函数将按照排序后的记录顺序进行编号;FRAME
子句:FRAME是当前分区的一个子集,子句用来定义子集的规则,通常用来作为滑动窗口使用。