题解 | #2021年11月每天新用户的次日留存率#
2021年11月每天新用户的次日留存率
https://www.nowcoder.com/practice/1fc0e75f07434ef5ba4f1fb2aa83a450
SELECT intime, round(AVG(case when TIMESTAMPdiff(DAY, intime, rn) = 1 OR TIMESTAMPdiff(DAY, intime, outtime) >= 1 then 1 ELSE 0 END ),2)AS lip FROM ( SELECT uid, DATE(in_time)intime,lead(date(in_time))over(PARTITION BY uid ORDER BY DATE(in_time))AS rn,ROW_NUMBER()over(PARTITION BY uid ORDER BY date(in_time))rk, DATE(out_time)outtime FROM tb_user_log )t WHERE rk=1 AND date_format(DATE(intime),'%Y-%m') = '2021-11' GROUP BY intime ORDER BY 1 ;
使用分析函数,ROW_NUMBER()OVER()筛选出新用户,LEAD()OVER()筛选出第二天留存的天数,使用CASE WHEN 进行转换,最后筛选出2021-11的时间即可