题解 | #计算用户的平均次日留存率#
计算用户的平均次日留存率
https://www.nowcoder.com/practice/126083961ae0415fbde061d7ebbde453
select count(q2.date)/count(q1.date) from ( select distinct q1.device_id,q1.date from question_practice_detail as q1 ) as q1 left join ( select distinct q1.device_id,q1.date from question_practice_detail as q1 ) as q2 on q1.device_id=q2.device_id and datediff(q1.date,q2.date)=1
容易出错和忽略的点在于没有对一个人同一天的刷题数进行过滤,先用
select distinct q1.device_id,q1.date from question_practice_detail as q1
将每个用户刷过题的日期过滤出来,然后使用这两个表对照,就可以得到每个用户刷题后一天再次刷题的次数