题解 | #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) # date_sub的用法 where date_format(t1.dt,'%Y-%m') = '2021-11' group by t1.dt order by t1.dt
1、建立用户-第一次登陆时间的新用户表。group by uid
2、左连接用户活跃表(每个用户登入登出去重汇总表)。两个表日期间隔一行连接,左表日期为右表的前一天。
3、计算次日留存率(次日留存用户数/当日新用户数)。