题解 | #2021年11月每天新用户的次日留存率#

2021年11月每天新用户的次日留存率

https://www.nowcoder.com/practice/1fc0e75f07434ef5ba4f1fb2aa83a450

求次日留存率新方法(如果in_time-进入时间和out_time-离开时间跨天了,在两天里都记为该用户活跃过时):

1.先根据uid和dt去重后,查出in_time和out_time两张表union起来,此时得到的就是前一天和后一天合并起来的用户活跃表

2.根据用户活跃表,用min()over()查出用户的首次登录时间,用lead()over()将每行数据往后推一行,如果此行不为空,则说明此用户已经连续两天活跃了,查出的表记为t1

3.从t1中查出dt,接下来就是求次日留存率,首先如果满足dt=new_dt,timestampdiff(day,dt,next_dt)=1说明此用户满足次日留存,将其记为1否则为0;将这样的记录用sum()求和即为总的次日留存的用户;其次就是求所有新用户,即dt=new_dt时,用户即为新用户,用sum()将其求和得到新用户数,与前面的满足次日留存的用户相除得到次日留存率

4.注意按照dt分组、按照dt从小到大排序、次日留存率为0的不要

全部评论

相关推荐

神哥了不得:放平心态,再找找看吧,主要现在计算机也变卷了,然后就比较看学历了,之前高中毕业你技术强,都能找到工作的
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务