Mysql窗口函数
跟拉钩数据分析训练营一起学习窗口函数
在输出结果方面:窗口函数本身也有分组与group by分组最显著的不同是窗口函数输入计算的有多少行数据,输出的也有多少行,不会像group by那样进行聚合。
窗口函数结构:
***函数名([expr]) over(partition by <要分列的组> order by <要排序的列> rows between <数据范围>)***其中,over是关键字,用来指定函数执行的窗口范围,包含三个分析子句:分组(partition by)子句,排序(order by)子句,窗口(rows)子句,如果后面括号中什么都不写,则意味着窗口包含满 足where条件的所有行,窗口函数基于所有行进行计算。
窗口函数内部解读:
窗口函数(专有窗口函数+聚合类窗口函数)和普通场景下的聚合函数也很容易混淆,二者区别 如下:
普通场景下的聚合函数是将多条记录聚合为一条(多到一);窗口函数是每条记录都会执行,有几条记录执行完还是几条(多到多)。 分组(partition by):记录按照字段进行分组,窗口函数在不同的分组上分别执行。
分组(partition by):记录按照字段进行分组