| 口径 | 首日 cohort + 第 N 日活跃标志 |
|---|---|
| 粒度 | 首日 × 用户 × 留存天数 |
| 算法 | 按日期差计算 day_diff |
| 注意 | 活跃定义要与业务统一(登录/下单/访问) |
N 日留存 SQL
N 日留存 SQL
WITH first_day AS (
SELECT user_id, MIN(dt) AS first_dt FROM dwd_user_login_di GROUP BY user_id
)
SELECT f.first_dt,
DATEDIFF(l.dt, f.first_dt) AS day_diff,
COUNT(DISTINCT l.user_id) AS user_cnt
FROM first_day f
JOIN dwd_user_login_di l ON f.user_id = l.user_id
WHERE DATEDIFF(l.dt, f.first_dt) BETWEEN 0 AND 30
GROUP BY f.first_dt, DATEDIFF(l.dt, f.first_dt);留存率的分母是当日新增用户数,分子是第 N 日仍活跃的这批人;分母口径变化会让整条曲线跳变。