题解 | #2021年11月每天新用户的次日留存率#
2021年11月每天新用户的次日留存率
https://www.nowcoder.com/practice/1fc0e75f07434ef5ba4f1fb2aa83a450
WITH reg AS ( SELECT uid, MIN(dt) AS reg_dt FROM (SELECT uid, DATE_FORMAT(in_time, '%Y-%m%-%d') AS dt FROM tb_user_log UNION SELECT uid, DATE_FORMAT(out_time, '%Y-%m%-%d') AS dt FROM tb_user_log ) AS a GROUP BY uid ), total AS (SELECT uid, DATE_FORMAT(in_time, '%Y-%m%-%d') AS dt FROM tb_user_log UNION SELECT uid, DATE_FORMAT(out_time, '%Y-%m%-%d') AS dt FROM tb_user_log ) SELECT reg_dt AS dt, ROUND(SUM(IF(dt = DATE_ADD(reg_dt, INTERVAL 1 DAY), 1 , 0))/SUM(IF(dt = reg_dt, 1 , 0)),2) AS uv_left_rate FROM total LEFT JOIN reg USING (uid) WHERE reg_dt BETWEEN '2021-11-01' AND '2021-11-30' GROUP BY reg_dt ORDER BY dt