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í.

Análisis de embudo SQL

Un embudo mide cómo progresa una población definida a través de hitos. El SQL es sencillo sólo después de que la definición del producto es precisa: quién ingresa, si los pasos deben ocurrir en orden, cuánto tiempo tienen los usuarios para progresar, qué identidad representa a una persona o cuenta, y cómo se comportan los reintentos y los eventos duplicados.

Reducir eventos a una fila por actor

WITH events AS (
  SELECT account_id, event_name, timestamp_utc
  FROM product_events
  WHERE timestamp_utc >= now() - INTERVAL '30 days'
),
signups AS (
  SELECT account_id, MIN(timestamp_utc) AS signed_up_at
  FROM events WHERE event_name = 'signup_completed'
  GROUP BY account_id
),
workspaces AS (
  SELECT s.account_id, s.signed_up_at,
    MIN(e.timestamp_utc) AS workspace_created_at
  FROM signups AS s
  LEFT JOIN events AS e ON e.account_id = s.account_id
    AND e.event_name = 'workspace_created'
    AND e.timestamp_utc >= s.signed_up_at
  GROUP BY s.account_id, s.signed_up_at
),
account_steps AS (
  SELECT w.account_id, w.signed_up_at, w.workspace_created_at,
    MIN(e.timestamp_utc) AS first_event_sent_at
  FROM workspaces AS w
  LEFT JOIN events AS e ON e.account_id = w.account_id
    AND e.event_name = 'first_event_sent'
    AND e.timestamp_utc >= w.workspace_created_at
  GROUP BY w.account_id, w.signed_up_at, w.workspace_created_at
)
SELECT
  COUNT(*) AS accounts_seen,
  COUNT(signed_up_at) AS signed_up,
  COUNT(workspace_created_at) AS created_workspace,
  COUNT(first_event_sent_at) AS sent_first_event
FROM account_steps;

Cada etapa conserva una fila por cuenta y selecciona el primer hito que ocurre en el momento de la etapa válida anterior o después. Un hito ausente o fuera de orden bloquea todas las etapas posteriores; un reintento válido posterior permite avanzar. Los eventos duplicados cuentan una sola vez y se aceptan marcas de tiempo iguales. Añada una ventana máxima de conversión si la progresión debe ocurrir dentro de un período fijo.

Mantenga distintas las ventanas de cohorte y de observación

Si la consulta incluye registros de ayer, esas cuentas han tenido menos tiempo para activarse que las cuentas de principios de mes. Permita que cada cohorte tenga una ventana de observación completa o etiquete las cohortes recientes como incompletas. Filtrar todos los eventos en el mismo rango del calendario puede cortar involuntariamente hitos posteriores válidos.

Elija un identificador de cuenta para la activación a nivel de cuenta y un identificador de usuario para el comportamiento a nivel de persona. No cambies de identidad entre pasos. Defina cómo funcionan las cuentas fusionadas, las sesiones anónimas, las cuentas reabiertas y las finalizaciones repetidas.

Muestre siempre el recuento de pasos junto a los porcentajes. Un cambio de conversión puede provenir del numerador, denominador, combinación de tráfico o instrumentación. Los modelos receta del embudo de registro y guía de tasa de conversión probados proporcionan un punto de partida completo. Utilice Retención de cohorte cuando la pregunta sea un comportamiento continuo después de la activación.

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