题解 | 计算用户的平均次日留存率
计算用户的平均次日留存率
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 as q1
-- 左连接:保留所有首日用户,即使次日未活跃
LEFT OUTER JOIN question_practice_detail as q2 ON q1.device_id = q2.device_id -- 用户ID匹配
AND DATEDIFF(q2.date, q1.date) = 1 -- 日期相差1天(即次日)
查看21道真题和解析