本文へ移動
Telemetry
データ品質 SQL レシピ

センサーの配信回数と測定回数を分けて数える

架空のセンサー配信6件をSQLで調べます。ネットワークの再送で行は増えても測定回数は増えず、行ごとの平均が変わります。

初心者sensor_deliveriesレビュー済み 2026-09-24テスト済み アパッチ DataFusion 45.2.0

レビュー者 Telemetry 製品チーム に . SQL構文、必要なイベント項目、サンプル結果、クエリの利用上の制限を確認しました. このページのレビュー担当

質問に回答しました

センサーが6回測定したのでしょうか。それとも4回の測定値が計6回届いたのでしょうか。

配信は受信したイベント1件です。この架空データでは reading_id が1回の測定を示します。問いに合った単位で件数と平均を計算します。

イベントスキーマ

クエリが期待するフィールド

フィールド種類なぜ存在するのか
reading_idUtf8架空の測定を識別するID。
measured_secondInt64演習開始からセンサーが測定するまでの秒数。
delivered_secondInt64演習開始からネットワークのメッセージが届くまでの秒数。
co2_ppmInt64架空の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。決定論的なサンプル出力は合成され、個別にレビューされます。フィールド タイプ、しきい値、ビジネス定義を独自のデータと照合して検証します。 テスト方法を読んでください。

クエリ結果

集計単位が2つ、平均値も2つ

6回の配信は4回の測定に対応します。2つの平均値は同じ架空の数値から求めますが、答える問いが異なります。

deliveriesmeasurementsdelivered_mean_ppmmeasurement_mean_ppm
64700675

合成出力例。運用上の決定に使用する前に、独自のイベント スキーマとしきい値に対してクエリを実行します。

Two grains, two averages: Count sensor deliveries and measurements separately 結果例からの合成 measurement_mean_ppm 値の静的チャート
決定論的な出力例のインデックス可能な SVG。記事、ランブック、または出典を明示した設計レビューのためにダウンロードしてください。

例を再現する

サンプルデータをダウンロードする

JSON バンドルには、型付きイベント コントラクトが含まれています。 reproducible 入力行、正確な SQL、予想される出力、レビューメモ、およびエンジンのバージョン。 CSV には、表示された結果が含まれます。

SQL の仕組み

  1. 1最初のCTEは reading_id ごとに配信をまとめるため、r4の再送を新たな測定として数えません。
  2. 2届いた行の平均は700 ppm、4回の測定の平均は675 ppmです。どちらも必ずしも教室の時間加重平均ではありません。
  3. 3ここでMINを使えるのは、同じ reading_id の架空の配信では co2_ppm がすべて同じだからです。実データの重複を除く前に値の食い違いを確認してください。

確認するエッジケース

  • 異なる2回の測定が同じCO₂値になることがあります。AVG(DISTINCT co2_ppm) はそれらを誤って1つにまとめます。
  • 実際の読み取りIDは機器間で衝突したり、再起動後に再利用されたりします。実イベントをまとめる前に識別規則を決めてください。
  • この架空のCO₂値で換気や健康に関する判断はできません。実際には校正、設置場所、欠測、時間範囲の確認が必要です。

推奨されるダッシュボード

  • 表:選んだ演習の配信回数、測定回数、2つの平均

アラートガイダンス

この架空の教材データは実際のCO₂アラートには使えません。

アラート設定を読む

このクエリに必要なイベントを設定する

関連する機器とガイド

分析を続ける

自分のイベントで実行する

テーブルを作成し、フィールドを調整して、結果を保存します

無料で始めて、構造化されたイベントを送信し、クエリ結果をグラフ、共有ダッシュボード ウィジェット、またはアラート入力として使用します。

API キーを取得する