题解 | #计算用户的平均次日留存率#
计算用户的平均次日留存率
https://www.nowcoder.com/practice/126083961ae0415fbde061d7ebbde453
/*
思路:
1.我们要找到第一天在线的人数,然后找到第二天在线的人数。
2.连接两个表,并且增加筛选条件,使用datediff得到第一天在线第二天还在线的人数
3.计算去重。
*/
SELECT
COUNT(distinct q2.device_id,q2.date)/count(DISTINCT q1.device_id,q1.date) as avg_ret
from
question_practice_detail as q1
left join
question_practice_detail as q2
on q1.device_id=q2.device_id and DATEDIFF(q2.date,q1.date)=1;