Saltar al contenido
Telemetry
Explorar documentación
Conceptos y patrones de SQLActualizado el 28 de julio de 2026Revisado por los equipos editorial y de producto de Telemetry2 min de lectura

Usa esta documentación con tu agente de programación

Abra un paquete de mensajes enfocados para Claude Code, Codex, Cursor u otro agente de codificación, luego adáptelo al flujo de trabajo que se describe aquí.

Funciones de ventana SQL para analizar eventos

Las funciones de ventana calculan en filas relacionadas y preservan cada fila en el resultado. Un GROUP BY normal reduce muchos eventos a una fila por grupo; una ventana puede mantener cada día, solicitud o cuenta mientras agrega un valor, clasificación o línea de base móvil anterior.

Comparar depósitos adyacentes

WITH daily AS (
  SELECT
    date_trunc('day', timestamp_utc) AS day,
    COUNT(*) AS completed_jobs
  FROM job_events
  WHERE status = 'completed'
    AND timestamp_utc >= now() - INTERVAL '30 days'
  GROUP BY date_trunc('day', timestamp_utc)
)
SELECT
  day,
  completed_jobs,
  LAG(completed_jobs) OVER (ORDER BY day) AS previous_day_jobs,
  AVG(completed_jobs) OVER (
    ORDER BY day
    ROWS BETWEEN 6 PRECEDING AND CURRENT ROW
  ) AS rolling_7_bucket_average
FROM daily
ORDER BY day;

LAG lee una fila anterior según el orden de las ventanas. Un AVG enmarcado calcula una línea base rodante de siete cubos. Las primeras filas tienen menos de siete depósitos contribuyentes, así que etiquételos o suprímalos cuando se requiera una ventana completa.

Partición por la unidad de comparación.

Agregue PARTITION BY service cuando cada servicio necesite una secuencia independiente. Sin él, la fila anterior puede pertenecer a otro servicio. Las columnas de orden también deben ser deterministas; Si dos eventos comparten una marca de tiempo, agregue un identificador estable como desempate.

ROW_NUMBER es útil para elegir un evento por clave lógica:

ROW_NUMBER() OVER (
  PARTITION BY delivery_id
  ORDER BY timestamp_utc DESC, event_id DESC
) AS newest_rank

Filtrar a newest_rank = 1 en una consulta externa. Decida si "más nuevo" o "primero aceptado" es la regla comercial correcta antes de utilizar el patrón.

Windows no repara los intervalos de tiempo que faltan, los eventos de origen duplicados ni el grano de fila ambiguo. Valide esas condiciones antes de interpretar un cambio de un período a otro. Lea SQL Deduplicación para conocer las reglas de identidad y DataFusion SQL referencia para conocer la sintaxis de ventana probada por Telemetry.

Función relacionada del producto

Ejecute DataFusion SQL de solo lectura sobre tablas de eventos estructurados y reutilice el resultado.

Responsabilidad y referencias técnicas

El equipo editorial de Telemetry es responsable de esta explicación; el equipo de producto revisa el comportamiento, los ejemplos y las limitaciones.

Consultar los criterios editoriales