有关开窗函数的基本语法参照 参考地址
1.LAG & LEAD
LAG(col,n,DEFAULT) 用于统计窗口内往上第n行值
LEAD(col,n,DEFAULT) 用于统计窗口内往下第n行值
需求:App启动之后,统计用户行为分布
过程就是针对用户的回传日志按照时间排序,使用lead函数取下一条日志的行为
with tas (
select uid,act_name,time,
lead(act_name,1,'') over(partition by uid order by time desc) AS next_act
from log
where day = '20190227')
select next_act,count(distinct uid) as uv
from t
where t.act_name = 'start'
group by next_act
order by uv desc
更多类似的统计还包括:
用户购买某件商品之前的广告点击情况统计
用户在搜索某个关键词之后点击了哪个商品或者链接