イベント契約
クエリが期待するフィールド
| フィールド | 種類 | なぜ存在するのか |
|---|---|---|
| timestamp_utc | Timestamp | アクティビティが発生したとき。 |
| user_id | Utf8 | 安定したユーザー識別子。 |
| event_name | Utf8 | 製品イベント名。 |
クエリをコピーする
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。決定論的なサンプル出力は合成され、個別にレビューされます。フィールド タイプ、しきい値、ビジネス定義を独自のデータと照合して検証します。 テスト方法を読んでください。
クエリ結果
アクティベーション コホート別の週ごとの維持率
古いコホートは、1 週目にユーザーの半分を維持しました。新しいコホートはまだ 1 週間の比較ができるほど成熟していません。
週 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 |
合成出力例。運用上の決定に使用する前に、独自のイベント スキーマとしきい値に対してクエリを実行します。
例を再現する
パブリックフィクスチャをダウンロードする
JSON バンドルには、型付きイベント コントラクトが含まれています。 reproducible 入力行、正確な SQL、予想される出力、レビューメモ、およびエンジンのバージョン。 CSV には、表示された結果が含まれます。
SQL の仕組み
- 1最初の CTE は、最初に価値マイルストーンを完了した週からの各ユーザーのコホートを定義します。
- 2毎週のアクティビティは重複排除されるため、1 週間の複数のイベントは 1 人の保持ユーザーとしてカウントされます。
- 3タイムスタンプの差は日から週のオフセットに変換され、コホート間で比較できます。
決定すべきエッジケース
- 異なる年齢のコホートを比較する場合は、不完全な将来の週を除外します。
- ページビューではなく、意味のあるアクティビティからの戻り動作を定義します。
- UTC の週の境界はビジネスのタイムゾーンと一致しない場合があります。選択した境界を文書化します。
推奨されるダッシュボード
- ヒートマップ スタイルのテーブル: cohort_week by week_number
- 折れ線グラフ: retention_pct を week_number で割ったものを cohort_week で割ったもの
- 統計: 成熟コホートの 4 週目の保持率
レシピを活用する
関連する機器とガイド
分析を続ける
実際のイベントで実行する
テーブルを作成し、フィールドを調整して、結果を保存します
無料で始めて、構造化されたイベントを送信し、クエリ結果をグラフ、共有ダッシュボード ウィジェット、またはアラート入力として使用します。