typestar

CTE encadenadas en SQL

Varias CTE separadas por comas, cada una libre de construir sobre la anterior.

WITH monthly AS (
    SELECT
        STRFTIME('%Y-%m', placed_at) AS month,
        SUM(total) AS revenue
    FROM orders
    WHERE status = 'paid'
    GROUP BY month
),
ranked AS (
    SELECT
        month,
        revenue,
        RANK() OVER (
            ORDER BY revenue DESC
        ) AS position
    FROM monthly
)
SELECT *
FROM ranked
WHERE position <= 3;

Cómo funciona

  1. Así un reporte largo se mantiene legible: un paso por CTE.
  2. Una CTE posterior selecciona de una anterior por su nombre.
  3. El SELECT final une las piezas.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
20
Caracteres a escribir
279
Tokens
64
Ritmo de tres estrellas
90 tpm

Al ritmo de tres estrellas de 90 tokens por minuto, este intento toma unos 43 segundos.

Escribe este fragmento

Paso 2 de 3 en Expresiones de tabla comunes; paso 5 de 24 en Analítica y reportes.

← Anterior Siguiente →