按注册月份把用户分成 cohort,统计每个 cohort 在注册后第 0~3 个月的活跃留存。
cohort_month:signup_ts所在月份的 1 号(date 类型)。month_offset:事件所在的日历月与注册所在日历月相差的月数,按“年×12+月”计算,跨年照常累加(2025-11 注册、2026-01 的事件 offset 为 2)。与相隔多少天无关:11-30 注册、12-01 的事件 offset 为 1。- 只统计
month_offset为 0、1、2、3 的事件,其余忽略。 retained:该 cohort 中在该 offset 月份有任意事件的去重用户数。rate = retained / cohort 人数,不舍入。cohort 人数包括从来没有事件的用户。- 每个 cohort 都必须输出 offset 0~3 共 4 行,没有人活跃的月份(包括数据还没覆盖到的未来月份)输出
retained = 0、rate = 0.0。
输入
users(user_id, signup_ts, country, device)events(event_id, user_id, ts, event_type, page)
输出
列为 cohort_month(date)、month_offset、retained(整数)、rate(浮点),长表格式,行顺序不限。