一、开窗函数
1.什么是窗口函数: 窗口 + 函数
窗口: 函数运行时计算的数据集的范围
函数:运行时的函数:
1.常用的聚合函数
2.窗口内置的函数
2. 语法结构:
函数 over([partition by xxx,...] [order by xxx,...]
over: 以谁进行开窗 =》 table
partition by:以谁进行分组(类似group by ) =》 字段
order by:以谁进行排序 =》字段
二、开窗 -内置函数
1. NTILE(N)理论解析:
把数据平均分配到N中,如果不能平均分配,优先分配到较小的编号中。
RANK理论解析:
从1开始,按照顺序,生成组内记录的编号,排序相同会重复,在名次中留下空位
ROW_NUMBER理论解析:
从1开始,按照顺序,生成组内记录的编号,序号没有重复的
DENSE_RANK理论解析:
从1开始,按照顺序,生成组内记录的编号,排序相同会重复,在名次中不留下空位
2. 行段问题
lag 向上取第几行
lead 向下取第几行
语法格式:lag(input[, offset[, default]])
input =》 col
offset =》 取第几行
default=》 取不到时 给一个默认值
3. 取值问题
FIRST_VALUE(col):取分组后 截止到当前行 第一个值
LAST_VALUE(col):取分组后 截止到当前行 最后一个值