事件結構
查詢期望的欄位
| 欄位 | 型別 | 為什麼存在 |
|---|---|---|
| reading_id | Utf8 | 虛構量測的識別碼。 |
| measured_second | Int64 | 練習開始後,感測器量測的秒數。 |
| delivered_second | Int64 | 練習開始後,網路訊息送達的秒數。 |
| co2_ppm | Int64 | 虛構的 CO₂ 讀數,單位為 ppm;不能用於健康評估。 |
DataFusion SQL
複製查詢
sql
WITH per_reading AS (
SELECT reading_id, MIN(co2_ppm) AS co2_ppm
FROM sensor_deliveries
GROUP BY reading_id
),
delivery_summary AS (
SELECT COUNT(*) AS deliveries, AVG(co2_ppm) AS delivered_mean_ppm
FROM sensor_deliveries
),
measurement_summary AS (
SELECT COUNT(*) AS measurements, AVG(co2_ppm) AS measurement_mean_ppm
FROM per_reading
)
SELECT deliveries, measurements, delivered_mean_ppm, measurement_mean_ppm
FROM delivery_summary CROSS JOIN measurement_summary;此只讀查詢是針對空型別資料表計劃和執行的 阿帕奇 DataFusion 45.2.0。確定性樣本輸出是綜合的並單獨審查;根據您自己的資料驗證欄位型別、閾值和業務定義。 閱讀測試方法。
查詢結果
兩種統計單位,兩種平均值
六次送達對應四次量測。兩個平均值使用同一組虛構數值,卻回答不同問題。
| deliveries | measurements | delivered_mean_ppm | measurement_mean_ppm |
|---|---|---|---|
| 6 | 4 | 700 | 675 |
綜合範例輸出。在將其用於操作決策之前,針對您自己的事件架構和閾值執行查詢。
SQL 是如何工作的
- 1第一個 CTE 依 reading_id 將送達紀錄分組,因此 r4 的重送不會算成新量測。
- 2依送達資料列計算的平均值是 700 ppm;依四次量測計算的是 675 ppm。兩者都不一定是教室空氣的時間加權平均值。
- 3這裡可用 MIN,僅因同一 reading_id 的每筆虛構紀錄都有相同的 co2_ppm。替真實資料去重前,應檢查是否有衝突值。
需要檢查的邊界情況
- 兩次不同的量測可能得到相同的 CO₂ 數值;AVG(DISTINCT co2_ppm) 會錯誤地將它們合併。
- 真實的讀數 ID 可能在不同裝置間衝突,也可能在重新啟動後重複使用。分組真實事件前,應先定義量測識別規則。
- 這組虛構 CO₂ 數值不能用於通風或健康決策。真實使用還須檢查校準、安裝位置、遺漏讀數和時間涵蓋範圍。
推薦儀表板
- 表格:一次練習中的送達次數、量測次數和兩個平均值
設定此查詢需要的事件
相關埋點和指南
繼續分析
在你的事件上執行
建立資料表,調整欄位並儲存結果
免費開始,傳送結構化事件,並將查詢結果用作圖表、共享儀表板小工具或警示輸入。