活動合約
查詢期望的欄位
| 欄位 | 型別 | 為什麼存在 |
|---|---|---|
| timestamp_utc | Timestamp | 發票事件時間。 |
| invoice_id | Utf8 | 穩定的提供商發票識別符號。 |
| event_name | Utf8 | invoice_payment_failed 或 invoice_paid。 |
| amount_usd | Float64 | 標準化發票金額。 |
| failure_type | Utf8 | 安全分類故障原因。 |
DataFusion SQL
複製查詢
sql
WITH failures AS (
SELECT
invoice_id,
MIN(timestamp_utc) AS first_failed_at,
MAX(amount_usd) AS amount_usd,
MIN(failure_type) AS failure_type
FROM invoice_events
WHERE event_name = 'invoice_payment_failed'
AND timestamp_utc >= now() - INTERVAL '60 days'
GROUP BY invoice_id
),
recoveries AS (
SELECT
invoice_id,
MIN(timestamp_utc) AS recovered_at
FROM invoice_events
WHERE event_name = 'invoice_paid'
GROUP BY invoice_id
)
SELECT
failures.failure_type,
COUNT(*) AS failed_invoices,
SUM(CASE
WHEN recoveries.recovered_at > failures.first_failed_at THEN 1
ELSE 0
END) AS recovered_invoices,
100.0 * SUM(CASE
WHEN recoveries.recovered_at > failures.first_failed_at THEN 1
ELSE 0
END) / NULLIF(COUNT(*), 0) AS recovery_rate_pct,
SUM(CASE
WHEN recoveries.recovered_at IS NULL THEN failures.amount_usd
ELSE 0.0
END) AS unrecovered_amount_usd
FROM failures
LEFT JOIN recoveries
ON recoveries.invoice_id = failures.invoice_id
GROUP BY failures.failure_type
ORDER BY unrecovered_amount_usd DESC;此只讀查詢是針對空型別資料表計劃和執行的 阿帕奇 DataFusion 45.2.0。確定性樣本輸出是綜合的並單獨審查;根據您自己的資料驗證欄位型別、閾值和業務定義。 閱讀測試方法。
查詢結果
按失敗型別劃分的付款恢復率
需要身分驗證的故障恢復的頻率最低,並且保留了有意義的收入風險。
insufficient_funds
62.68%
expired_card
81.03%
authentication_required
50%
| failure_type | failed_invoices | recovered_invoices | recovery_rate_pct | unrecovered_amount_usd |
|---|---|---|---|---|
| insufficient_funds | 142 | 89 | 62.68 | 6,840 |
| expired_card | 58 | 47 | 81.03 | 1,320 |
| authentication_required | 36 | 18 | 50 | 2,940 |
綜合範例輸出。在將其用於操作決策之前,針對您自己的事件架構和閾值執行查詢。
SQL 是如何工作的
- 1失敗的 CTE 將提供商重複的嘗試合併到一張有風險的發票中。
- 2僅當在第一次記錄的失敗後付款成功時,恢復才算作恢復。
- 3未收回金額與費率相補充,因此少量大額髮票仍然可見。
需要決定的邊緣情況
- 在將 Webhook 交付視為新的付款嘗試之前,對其進行重複資料刪除。
- 成功恢復後,退款和退款需要單獨的生命週期事件。
- 使用記錄的匯率標準化貨幣並保留原始貨幣欄位以進行調節。
推薦儀表板
- 酒吧:recovery_rate_pct by failure_type
- 狀態:unrecovered_amount_usd
- 資料表:最高價值的未收回發票和帳戶所有者
讓查詢範例發揮作用
相關埋點和指南
定義源資料
此分析的事件模式
繼續分析
在真實事件中執行它
建立資料表,調整欄位並儲存結果
免費開始,傳送結構化事件,並將查詢結果用作圖表、共享儀表板小工具或警示輸入。