题解 | #计算用户的平均次日留存率#
计算用户的平均次日留存率
https://www.nowcoder.com/practice/126083961ae0415fbde061d7ebbde453
SELECT COUNT(d2)/COUNT(*) avg_ret FROM (SELECT DISTINCT q1.device_id,q1.date d1,q2.date d2 FROM question_practice_detail q1 LEFT JOIN question_practice_detail q2 ON YEAR(q1.date) = YEAR(q2.date) AND MONTH(q1.date) = MONTH(q2.date) AND DAY(q1.date)+1 = DAY(q2.date) AND q1.device_id=q2.device_id) t
非常简单的思路
先两张表里面根据日期联立,作为新表
之后找到第二天为null的去除以全部就行了