Saltar al contenido
Telemetry
Calidad de datos receta SQL

Cuenta por separado los mensajes recibidos y las mediciones del sensor

Ejecuta SQL sobre seis mensajes ficticios de un sensor. Un reenvío de la red añade filas sin añadir mediciones y cambia la media calculada por fila.

Principiantesensor_deliveriesRevisado 2026-09-24Probado con Apache DataFusion 45.2.0

Revisado por el equipo de producto Telemetry en . Revisamos la sintaxis SQL, los campos necesarios, los resultados de ejemplo y las limitaciones de la consulta. Quién revisa esta página

Pregunta respondida

¿Midió el sensor seis veces o entregó la red cuatro mediciones en seis mensajes?

Cada mensaje recibido es una entrega; reading_id identifica una medición en estos datos inventados. Cuenta y calcula la media según la unidad que responde a tu pregunta.

Esquema del evento

Campos que espera la consulta

CampoTipoPor que existe
reading_idUtf8Identificador de la medición ficticia.
measured_secondInt64Segundos desde el inicio del ejercicio hasta la medición.
delivered_secondInt64Segundos desde el inicio del ejercicio hasta la llegada del mensaje.
co2_ppmInt64Lectura ficticia de CO₂ en partes por millón; no es una evaluación de salud.
DataFusionSQL

Copiar la consulta

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;

Esta consulta de solo lectura se planifica y ejecuta en una tabla escrita vacía con Apache DataFusion 45.2.0. El resultado de la muestra determinista es sintético y se revisa por separado; valide tipos de campos, umbrales y definiciones comerciales con sus propios datos. Lea la metodología de prueba.

Resultado de la consulta

Dos unidades de análisis, dos medias

Seis mensajes recibidos representan cuatro mediciones. Ambas medias usan los mismos valores ficticios, pero responden a preguntas distintas.

deliveriesmeasurementsdelivered_mean_ppmmeasurement_mean_ppm
64700675

Salida de ejemplo sintético. Ejecute la consulta con su propio esquema de eventos y umbrales antes de utilizarla para decisiones operativas.

Two grains, two averages: gráfico estático de valores sintéticos de measurement_mean_ppm del resultado del ejemplo Count sensor deliveries and measurements separately
SVG indexable de la salida del ejemplo determinista. Descárguelo para ver un artículo, un runbook o una revisión de diseño con atribución.

Reproducir el ejemplo

Descarga los datos de ejemplo

El paquete JSON incluye el contrato de evento escrito, reproducible filas de entrada, SQL exacto, resultado esperado, notas de revisión y versión del motor. El CSV contiene el resultado mostrado.

Cómo funciona el SQL

  1. 1La primera CTE agrupa los mensajes por reading_id; un reenvío de r4 no crea otra medición.
  2. 2La media de las filas recibidas es 700 ppm; la de las cuatro mediciones, 675 ppm. Ninguna es necesariamente una media temporal del aula.
  3. 3MIN solo funciona aquí porque cada mensaje con el mismo reading_id tiene el mismo co2_ppm ficticio. Comprueba si hay valores contradictorios antes de eliminar duplicados reales.

Casos límite que debes comprobar

  • Dos mediciones distintas pueden tener el mismo valor de CO₂. AVG(DISTINCT co2_ppm) las fusionaría por error.
  • Los identificadores reales pueden repetirse entre dispositivos o tras un reinicio. Define cómo se identifica una medición antes de agrupar eventos reales.
  • Estos valores ficticios de CO₂ no sirven para decidir sobre ventilación o salud. Con datos reales habría que comprobar calibración, ubicación, lecturas ausentes y cobertura temporal.

Panel recomendado

  • Tabla: mensajes recibidos, mediciones y las dos medias de una ejecución del ejercicio

Guía de alerta

Estos datos ficticios para clase no sirven para una alerta real de CO₂.

Leer configuración de alerta

Configura los eventos que necesita esta consulta

Instrumentación y guías relacionadas.

Continuar el análisis

Ejecútalo con tus eventos

Crea una tabla, adapta los campos y guarda el resultado.

Comience gratis, envíe eventos estructurados y utilice el resultado de la consulta como un gráfico, un widget de panel compartido o una entrada de alerta.

Obtén una clave API