typestar

CTE recursiva en SQL

Una CTE recursiva recorre una jerarquía o genera una secuencia.

WITH RECURSIVE reports AS (
    SELECT
        id,
        name,
        0 AS depth
    FROM employees
    WHERE manager_id IS NULL
    UNION ALL
    SELECT
        e.id,
        e.name,
        r.depth + 1
    FROM employees AS e
    JOIN reports AS r
        ON e.manager_id = r.id
    WHERE r.depth < 5
)
SELECT *
FROM reports;

Cómo funciona

  1. La primera rama es la fila semilla; la segunda, el paso.
  2. UNION ALL une la semilla con cada nueva generación.
  3. Una columna de profundidad y un tope mantienen finita la recursión.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
19
Caracteres a escribir
242
Tokens
63
Ritmo de tres estrellas
90 tpm

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

Escribe este fragmento

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

← Anterior Siguiente →