题解 | #2021年11月每天新用户的次日留存率#
2021年11月每天新用户的次日留存率
https://www.nowcoder.com/practice/1fc0e75f07434ef5ba4f1fb2aa83a450
第一步解决跨天。
第二步计算出第一次登录日期
第三步 根据登录日期加1天与id关联,得到次日有没有登录,进而统计留存率
with tmp as (
select uid,date( in_time) date1 from tb_user_log union
select uid,date(out_time) date1 from tb_user_log
),tmp2 as (select uid,min(date1) min_date from tmp GROUP BY uid)
select
tmp2.min_date,
round(sum(if(tmp.date1 is not null,1,0))/count(1),2) rate
from tmp2 left join tmp on tmp2.uid=tmp.uid AND tmp2.min_date=DATE_SUB(tmp.date1,INTERVAL 1 day)
where substr(tmp2.min_date,1,7)='2021-11'
group by tmp2.min_date
order by tmp2.min_date
#39次日留存率#