赞
踩
窗口函数适用场景:
对分组统计结果中的每一条记录进行计算
的场景下, 使用窗口函数更好, 注意, 是每一条!! 因为MySQL的普通聚合函数的结果(如 group by)是每一组只有一条记录
!!!
可以跟Hive的对比着看: 点我, 特么的花了一晚上整理, 没想到跟Hive 的基本一致, 还不因为好久没复习博客了, 淦
注意:
mysql 因为没有array数据结构, 无法像Hive一样 行列进行转换
;
在查询中对数据进行分组
,不同的是,分组操作会把分组的结果聚合成一条记录,而窗口函数是将分组的结果置于每一条数据记录中
。静态窗口函数
和动态窗口函数
窗口函数总体上可以分为序号函数, 分布函数, 前后函数, 首尾函数和其他函数;
OVER 关键字指定窗口的范围;
- 如果省略后面括号中的内容,则窗口会包含满足WHERE条件的所有记录,窗口函数会基于所有满足WHERE条件的记录进行计算。
- 如果OVER关键字后面的括号不为空,则可以使用如下语法设置窗口。
PARTITION BY 子句: 指定窗口函数按照哪些字段进行分组,
分组后, 窗口函数可以在每个分组中分别执行
;
ORDER BY 子句: 指定窗口函数按照哪些字段进行排序, 执行排序操作使窗口函数按照排序后的数据记录的顺序进行编号;
FRAME 子句: 为分区中的某个子集定义规则, 可以用来作为滑动窗口使用;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。