活动合约
查询期望的字段
| 字段 | 类型 | 为什么存在 |
|---|---|---|
| timestamp_utc | Timestamp | 活动发生时。 |
| user_id | Utf8 | 稳定的用户标识符。 |
| event_name | Utf8 | 产品事件名称。 |
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。确定性样本输出是综合的并单独审查;根据您自己的数据验证字段类型、阈值和业务定义。 阅读测试方法。
查询结果
激活队列的每周保留率
较老的群体在第一周保留了一半的用户;较新的群体还不够成熟,无法进行第一周的比较。
周 0
100%
队列 2026-07-20
周 1
50%
队列 2026-07-20
周 0
100%
队列 2026-07-27
| cohort_week | week_number | retained_users | cohort_size | retention_pct |
|---|---|---|---|---|
| 2026-07-20 | 0 | 4 | 4 | 100 |
| 2026-07-20 | 1 | 2 | 4 | 50 |
| 2026-07-27 | 0 | 3 | 3 | 100 |
综合示例输出。在将其用于操作决策之前,针对您自己的事件架构和阈值运行查询。
SQL 是如何工作的
- 1第一个 CTE 定义了每个用户从首次完成价值里程碑那周起的群组。
- 2每周活动都会进行重复数据删除,因此一周内的多个活动将计为一个保留用户。
- 3时间戳差异从天转换为一周偏移,可以在群组之间进行比较。
需要决定的边缘情况
- 比较不同年龄的队列时,排除不完整的未来几周。
- 定义来自有意义的活动而不是任何页面视图的返回行为。
- UTC 周边界可能与业务时区不匹配;记录所选边界。
推荐仪表板
- 热图样式表:cohort_week by week_number
- 折线图:retention_pct by week_number 除以 cohort_week
- 统计数据:成熟队列第四周的保留率
让查询示例发挥作用
相关埋点和指南
继续分析
在真实事件中运行它
创建表,调整字段并保存结果
免费开始,发送结构化事件,并将查询结果用作图表、共享仪表板小部件或警报输入。