跳至主要內容
Telemetry
瀏覽說明文件
概念與 SQL 模式更新於 2026年7月28日由 Telemetry 編輯團隊和產品團隊審查閱讀約需 2 分鐘

讓程式設計代理使用這篇文件

開啟 Claude Code、Codex、Cursor 或其他編碼代理的集中提示包,然後將其適應此處介紹的工作流程。

使用 SQL 分析同期群留存

保留詢問指定的參與者在開始里程碑後是否返回。有用的保留查詢會說明參與者、佇列事件、合格返回活動、間隔和觀察視窗。在這五個選擇明確之前,“每週保留”是不明確的。

分別建置佇列和活動資料表

WITH cohorts AS (
  SELECT
    account_id,
    date_trunc('week', MIN(timestamp_utc)) AS cohort_week
  FROM product_events
  WHERE event_name = 'activation_completed'
  GROUP BY account_id
),
activity AS (
  SELECT DISTINCT
    account_id,
    date_trunc('week', timestamp_utc) AS activity_week
  FROM product_events
  WHERE event_name IN ('query_completed', 'dashboard_viewed')
)
SELECT
  cohort_week,
  activity_week,
  COUNT(DISTINCT cohorts.account_id) AS retained_accounts
FROM cohorts
JOIN activity
  ON cohorts.account_id = activity.account_id
 AND activity.activity_week >= cohorts.cohort_week
GROUP BY cohort_week, activity_week
ORDER BY cohort_week, activity_week;

這一結果保留了佇列和活動周。在確認所選 SQL 引擎支援的日期演算法後,報告層可以將間隙轉換為第 0 周、第 1 周和後續週期。保持中間日期可見可以使邊界錯誤更容易被發現。

定義一次分母

分母是佇列中符合條件的參與者的數量,而不是產生後來活動事件的數量。單獨計算佇列大小並將其加入保留計數中。使用 NULLIF 保護百分比,並在輸出中保留兩個計數。

最近的佇列沒有時間達到較晚的間隔。將這些單元格標記為不完整,而不是將它們視為零保留。還要決定第零周是意味著啟用本身還是啟用後單獨返回。

使用代表持久價值的事件而不是任何後台心跳。排除測試帳戶和具有受控欄位的自動化活動。使用小型裝置驗證身分合併、重複事件、遲到和時區邊界。

閱讀 漏斗分析 瞭解里程碑進展,閱讀 時間分桶 瞭解間隔規則,並在採用另一種 SQL 方言的日期計算之前閱讀 DataFusion SQL 參考

相關產品功能

對結構化事件資料表執行只讀 DataFusion SQL 並重用結果。

內容責任與技術參考

Telemetry 編輯團隊負責維護本文;產品團隊審查功能行為、範例和適用範圍。

檢視編輯規範