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

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

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

-- 使用left join和date_sub函数将每天对应的新用户和后一天仍来的用户关联在一起进行计算次日留存率
select a.dt ,round(count(b.uid)/count(a.uid),2) as uv_left_rate 
from (
-- 1、可以根据uid对应的最小进入日期来统计对应的新用户
select uid ,min(date(in_time)) as dt 
from tb_user_log 
group by uid ) a 
left join (
-- 2、由于可能存在用户进入时间和离开时间跨天的情况,所以需要uid对应的进入时间和离开时间合并在一起
select uid ,date(in_time) as dt 
from tb_user_log  
union 
select uid ,date(out_time) as dt 
from tb_user_log ) b 
on a.uid = b.uid 
and a.dt = date_sub(b.dt,interval 1 day) 
where left(a.dt,7) = "2021-11"
group by a.dt

全部评论

相关推荐

千千倩倩:简历问题有点多,加v细聊
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务