连续类指标怎么算
连续活跃天数、连续无交易天数、连续未达标周期数这类指标共用一套框架:先把实体与日期序列对齐,再标记断点,然后按段累计取长度。实现上常用「日期减行号」的技巧,同一连续区间内的日期与行号差值恒定,按这个差值分组即得到连续段。这类指标对明细完整性极其敏感,活跃明细少一天,就会把一段连续区间切成两段。
基本信息
| 输入 | 实体键、日期序列、行为明细 |
|---|---|
| 对齐 | 日期序列左连行为,缺失按无处理 |
| 断点标记 | 行为是否发生,取 0 或 1 |
| 段长计算 | 日期减行号分组后计数 |
| 敏感性 | 明细缺失会直接切段 |
典型使用场景
- 连续活跃天数:会员等级、积分规则与签到激励的基础
- 连续无交易天数:识别流失前兆,触发召回动作
- 连续未达标周期数:考核预警,如连续三周未完成目标
- 连续在保天数、连续在线时长等运营类统计
- 补数后重算连续段,确认历史结论是否发生变化
- 最长连续段统计,用于评估用户粘性与内容吸引力
- 断点归因:把连续中断的时点与活动、故障等事件对齐分析
连续活跃段
连续活跃段
-- 连续活跃:日期与行号之差恒定即为同一连续段
WITH d AS (
SELECT user_id, dt,
date_sub(dt, row_number() OVER (PARTITION BY user_id ORDER BY dt)) AS grp
FROM dwd_active_user
WHERE dt <= '2026-10-12'
)
SELECT user_id, min(dt) AS seg_start, max(dt) AS seg_end, count(1) AS days
FROM d
GROUP BY user_id, grp
HAVING count(1) >= 7;要素与异常
| 要素 | 说明 | 异常表现 |
|---|---|---|
| 日期序列 | 必须连续,含无行为的日期 | 序列断档会把一段拆成两段 |
| 断点标记 | 行为是否发生 | 口径变化会让段长整体变化 |
| 段长 | 连续段内的天数 | 明细缺失时明显偏短 |
| 观察截止日 | 统计截止时间 | 不固定则结果每天都在变 |
连续段计算依赖活跃明细的完整性:上游补数或删数后,历史连续段会整体变化,因此补数之后必须重算并重新核对结论。
连续类指标要固定观察截止日:用当前日期做截止,会让同一份报表今天和明天给出不同结果,历史结论无法复现。