题解 | #计算用户的平均次日留存率#
计算用户的平均次日留存率
https://www.nowcoder.com/practice/126083961ae0415fbde061d7ebbde453
select count(q2.device_id)/count(q1.device_id) as avg_ret from (select distinct device_id, date from question_practice_detail) as q1 left join (select distinct device_id, date from question_practice_detail) as q2 on q1.device_id = q2.device_id and q2.date = date_add(q1.date, interval 1 day)
好难好难,次日留存率=①相同id且②第二天答题的用户数/第一天答题用户数
首先,选出两个distinct表,用于区分第一天和第二天;
其次,自连接,条件为相同的①device_id和②q2比q1多一天;
最后,在主查询中运用聚合函数count计算平均值。