跳转到内容
Telemetry
产品分析 SQL查询示例

计算每周群组保留率

按第一个活动周对用户进行分组,并衡量随后几周的返回百分比。

高级product_events已审核 2026-07-27测试用 阿帕奇 DataFusion 45.2.0

审阅者 Telemetry产品团队 . SQL 兼容性、事件契约、合成输出和操作注意事项. 审查标准和所有权

问题已回答

每个注册群体在第一周到第十二周内返回的百分比是多少?

单一保留率混合了成熟用户和新获得的用户。群组保留起始周,以便可以平等地比较产品或收购变化。

活动合约

查询期望的字段

字段类型为什么存在
timestamp_utcTimestamp活动发生时。
user_idUtf8稳定的用户标识符。
event_nameUtf8产品事件名称。
DataFusion SQL

复制查询

sql
WITH first_activity AS (
  SELECT
    user_id,
    date_trunc('week', MIN(timestamp_utc)) AS cohort_week
  FROM product_events
  WHERE event_name = 'first_value_completed'
  GROUP BY user_id
),
weekly_activity AS (
  SELECT DISTINCT
    user_id,
    date_trunc('week', timestamp_utc) AS activity_week
  FROM product_events
  WHERE event_name = 'core_feature_used'
),
cohort_activity AS (
  SELECT
    f.cohort_week,
    (date_part('epoch', a.activity_week)
      - date_part('epoch', f.cohort_week)) / 604800 AS week_number,
    COUNT(DISTINCT a.user_id) AS retained_users
  FROM first_activity f
  JOIN weekly_activity a ON f.user_id = a.user_id
  WHERE a.activity_week >= f.cohort_week
  GROUP BY
    f.cohort_week,
    (date_part('epoch', a.activity_week)
      - date_part('epoch', f.cohort_week)) / 604800
),
cohort_sizes AS (
  SELECT cohort_week, COUNT(*) AS cohort_size
  FROM first_activity
  GROUP BY cohort_week
)
SELECT
  c.cohort_week,
  c.week_number,
  c.retained_users,
  s.cohort_size,
  100.0 * c.retained_users / NULLIF(s.cohort_size, 0) AS retention_pct
FROM cohort_activity c
JOIN cohort_sizes s ON c.cohort_week = s.cohort_week
WHERE c.week_number BETWEEN 0 AND 12
ORDER BY c.cohort_week, c.week_number;

此只读查询是针对空类型表计划和执行的 阿帕奇 DataFusion 45.2.0。确定性样本输出是综合的并单独审查;根据您自己的数据验证字段类型、阈值和业务定义。 阅读测试方法。

查询结果

激活队列的每周保留率

较老的群体在第一周保留了一半的用户;较新的群体还不够成熟,无法进行第一周的比较。

cohort_weekweek_numberretained_userscohort_sizeretention_pct
2026-07-20044100
2026-07-2012450
2026-07-27033100

综合示例输出。在将其用于操作决策之前,针对您自己的事件架构和阈值运行查询。

Weekly retention by activation cohort:来自 Calculate Weekly Cohort Retention 示例结果的合成 retention_pct 值的静态图表
确定性示例输出的可索引 SVG。下载它以获取带有归属的文章、操作手册或设计评论。

重现示例

下载公共装置

JSON 包包含类型化事件契约, reproducible 输入行、确切的 SQL、预期输出、审阅注释和引擎版本。 CSV 包含显示的结果。

SQL 是如何工作的

  1. 1第一个 CTE 定义了每个用户从首次完成价值里程碑那周起的群组。
  2. 2每周活动都会进行重复数据删除,因此一周内的多个活动将计为一个保留用户。
  3. 3时间戳差异从天转换为一周偏移,可以在群组之间进行比较。

需要决定的边缘情况

  • 比较不同年龄的队列时,排除不完整的未来几周。
  • 定义来自有意义的活动而不是任何页面视图的返回行为。
  • UTC 周边界可能与业务时区不匹配;记录所选边界。

推荐仪表板

  • 热图样式表:cohort_week by week_number
  • 折线图:retention_pct by week_number 除以 cohort_week
  • 统计数据:成熟队列第四周的保留率

警报指导

保留率通常被视为趋势而不是分页。当第一周或第四周的保留率下降到预期范围之外时,标记成熟队列。

读取警报设置

让查询示例发挥作用

相关埋点和指南

继续分析

在真实事件中运行它

创建表,调整字段并保存结果

免费开始,发送结构化事件,并将查询结果用作图表、共享仪表板小部件或警报输入。

获取 API 密钥