发现一篇非常清晰的有语法有案例的
参见: 牛客网之开窗函数.
常用的有以下三类
- 排序窗口函数
row_number( ) over(partition by 分组字段 order by 排序字段 ) - 聚合窗口函数
2.1 分组后计数
count(字段) over (partition by 分组字段 order by 排序字段)
2.2 分组后求最大值
max(字段) over (partition by 分组字段)
2.3 分组后求最小值
min(字段) over (partition by 分组字段)
2.4 分组后求平均值
avg(字段) over (partition by 分组字段) - 偏移窗口函数
取出前面n行
lag(字段,n) over(partition by 分组字段 order by 排序字段)
lead(字段,n) over(partition by 分组字段 order by 排序字段)
举个例子:
现有活跃用户明细表 user_active_table,字段 date 日期、user_id 用户id,假设日期是连续的
问题1:每天活跃用户量的环比值
思路:计算每天活跃用户量,并用lag(