题解 | #计算用户的平均次日留存率#
计算用户的平均次日留存率
https://www.nowcoder.com/practice/126083961ae0415fbde061d7ebbde453
SELECT COUNT(DISTINCT q2.device_id,q2.date)/COUNT(DISTINCT q1.device_id,q1.date) AS avg_ret FROM question_practice_detail q1 LEFT JOIN question_practice_detail q2 ON q1.device_id = q2.device_id and DATEDIFF(q2.date,q1.date)=1
SELECT 第二天的非重复id数量/第一天非重复id数量 AS avg_ret ##为了防止当天会有某个id反复登陆刷题
FROM
question_practice_detail 第一天 LEFT JOIN ##这里写LEFT OUTER JOIN也没有区别…(INNER JOIN = JOIN,LEFT/RIGHT JOIN =LEFT/RIGHT OUTER JOIN) qpd第二天 ON 条件是两天的id相同 且 DATEDIFF(第二天日期,第一天日期)=1