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

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

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

# 知道第二天得到的数据后,对其进行计算次日留存率,根据日期分组
SELECT t1.dt,ROUND(COUNT(t2.uid)/COUNT(t1.uid),2) uv_rate 
FROM
# 这道题要的是新用户的留存,所以首先要查出新用户,查新用户的方法,查找最小登录时间
(SELECT uid,min(date(in_time)) dt FROM tb_user_log GROUP BY uid) t1 #每日新增用户表 需要对用户分组,进行去重操作
# 可能会涉及到跨天活跃,所以最好是并集操作,将登录时间和登出时间都拿出来,取并集,进行去重
LEFT JOIN (
SELECT uid,DATE(in_time) dt FROM tb_user_log
UNION
SELECT uid,DATE(out_time) dt FROM tb_user_log ) t2 # 用户活跃日期表
# 将每日新增用户表和用户活跃表进行左连接,当统一用户且该用户第二天依旧登录才会保留记录,否则右表会为空
ON t1.uid = t2.uid AND t1.dt = date_sub(t2.dt,interval 1 day)
WHERE date_format(t1.dt,'%Y-%m') = '2021-11'
GROUP BY t1.dt
ORDER BY t1.dt;

1、这道题要的是新用户的留存,所以首先要查出新用户,查新用户的方法,查找最小登录时间

每日新增用户表 需要对用户分组,进行去重操作

2、可能会涉及到跨天活跃,所以最好是并集操作,将登录时间和登出时间都拿出来,取并集,进行去重

3、将每日新增用户表和用户活跃表进行左连接,当统一用户且该用户第二天依旧登录才会保留记录,否则右表会为空

4、知道第二天得到的数据后,对其进行计算次日留存率,根据日期分组

全部评论

相关推荐

03-31 21:47
东南大学 C++
彭于晏前来求offe...:吓晕了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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