CDA117556

2022-01-23   阅读量: 409

行为转化中 lag开窗函数

扫码加入数据分析学习群

淘宝案例 行为转化分析,分组取出的表中上一行下一行比值,上一行用开窗函数lag() over()

-- 2.行为转化分析(转化率=当前行为人数/上一行为人数)

select

behavior_type,

count(distinct user_id) as 用户人数,

lag(count(distinct user_id),1) over(order by if(behavior_type='pv',1,if(behavior_type='fav',2,if(behavior_type='cart',3,4)))) as 上一行为用户人数,

ifnull(count(distinct user_id)/lag(count(distinct user_id),1) over(order by if(behavior_type='pv',1,if(behavior_type='fav',2,if(behavior_type='cart',3,4)))),1) as 转化率

from userbehavior_new

group by behavior_type;

需要注意的是,要用取出的表中上一行除下一行,要用开窗函数lag,而且要做出序号,可以跟if判断相结合使用,可以认为地给定合适的序号。

另外,group by 后产生聚合运算,select中 的开窗函数的执行是排在后边的,

是基于group by已取得表的基础上使用的,所以表现不出窗口函数应呈现的效果。但是针对这个字段来讲数据只是被隐藏了,在分区表里会单列一列呈现多行。



添加CDA认证专家【维克多阿涛】,微信号:【cdashijiazhuang】,提供数据分析指导及CDA考试秘籍。已助千人通过CDA数字化人才认证。欢迎交流,共同成长!
33.6822 6 0 关注作者 收藏

评论(0)


暂无数据

推荐课程