Menu
Coddy logo textTech

Una secuencia de números

Parte de la sección Más allá de lo básico del Journey de SQL de Coddy — lección 20 de 27.

Conociste la palabra clave WITH en Fundamentos para nombrar una subconsulta, también conocida como CTE (Common Table Expression). Un CTE recursive va un paso más allá: permite que la subconsulta se refiera a sí misma, construyendo un resultado fila por fila.

La versión más simple genera una secuencia de números sin una tabla subyacente. La estructura es siempre la misma:

WITH RECURSIVE counter(n) AS (
    SELECT 1                              -- ancla: la fila inicial
    UNION ALL
    SELECT n + 1 FROM counter WHERE n < 5 -- recursivo: construye el siguiente a partir del último
)
SELECT n FROM counter

Léelo así: comienza con n = 1, después sigue añadiendo filas donde cada n es el n + 1 anterior, deteniéndote cuando el WHERE deje de coincidir. El resultado es 1, 2, 3, 4, 5.

Las dos partes del cuerpo están unidas por UNION ALL. La primera es el anchor: las filas semilla. La segunda es el recursive step: consulta la propia CTE.

challenge icon

Desafío

Fácil

Escribe una CTE recursiva llamada powers con dos columnas:

  • i: el índice de iteración, comenzando en 1
  • p: 2 elevado a la i-ésima potencia (2, 4, 8, …)

Detente cuando p vaya a superar 1000. Devuelve ambas columnas, ordenadas por i en orden ascendente.

Pruébalo tú mismo

WITH RECURSIVE powers(i, p) AS (
    -- ancla: i=1, p=2
    -- recursivo: i+1, p*2, hasta que p alcance 1000
)
SELECT i, p FROM powers ORDER BY i
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Más allá de lo básico