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

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

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

解题思路:新增用户 = 第一次阅读的用户,直接获取最小进入阅读时间点为新增用户时间点。然后获取次日是否存在进入阅读或者是退出阅读的时间点,存在则存在次日存留,否则不存在次日存留。最后用总的次日存留除以第一次阅读总数得到次日存留率

select first.dt,
       round(count(u.uid)/ count(first.uid),2) as uv_left_rate
from
# 获取最先阅读的起始时间点
(select uid
      ,min(date(in_time)) dt
      from tb_user_log
      group by uid) first
# 获取整个周期的起始阅读和结束阅读时间点
left join (select uid , date(in_time) dt
           from tb_user_log
           union
           select uid , date(out_time)
           from tb_user_log) u
on first.uid = u.uid
and first.dt = date_sub(u.dt,interval 1 day)
where date_format(first.dt,"%Y-%m")='2021-11'
group by first.dt

全部评论

相关推荐

06-23 11:28
门头沟学院 Java
牛客91966197...:也有可能是点拒绝的时候自动弹的话术
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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