lezione 08

cte e query ricorsive

organizza query lunghe e gestisci gerarchie.

livello: intermedio durata: 32 min output: query gerarchiche badge: recursive cte

cte base

le cte rendono la query leggibile e modulare.

WITH base AS (
  SELECT id, amount FROM orders WHERE status = 'paid'
)
SELECT * FROM base WHERE amount > 100;

cte ricorsive

usa UNION ALL per attraversare alberi.

WITH RECURSIVE tree AS (
  SELECT id, parent_id, name, 0 AS depth
  FROM categories WHERE parent_id IS NULL
  UNION ALL
  SELECT c.id, c.parent_id, c.name, t.depth + 1
  FROM categories c JOIN tree t ON c.parent_id = t.id
)
SELECT * FROM tree;

best practice

limita la profondità e usa indici sulle chiavi padre/figlio.

le cte ricorsive possono essere costose: misura e filtra.

esercizi

calcola il percorso completo per ogni categoria (breadcrumb).

estrai solo i nodi fino a profondità 3.

checklist

  • usa cte per query modulari
  • indici su parent_id
  • limita la profondità
  • verifica il piano di esecuzione

panoramica

In questo capitolo su cte e query ricorsive, organizza query lunghe e gestisci gerarchie. L'obiettivo è trasformare i concetti in micro-pattern riutilizzabili con esempi piccoli e verificabili.

Lavora in sequenza: leggi, prova, modifica gli snippet e annota i trade-off principali (performance, leggibilità, manutenzione).

badge: recursive cte

obiettivi

  • capire e applicare cte in uno scenario reale
  • capire e applicare recursive in uno scenario reale
  • capire e applicare best practice in uno scenario reale
  • capire e applicare esercizi in uno scenario reale

scheda rapida

SELECT categoria, COUNT(*) AS tot
FROM prodotti
WHERE attivo = TRUE
GROUP BY categoria
ORDER BY tot DESC
LIMIT 5;

Adatta questo scheletro agli esempi della lezione e sostituisci i dati con il tuo dominio.

mini progetto

Esplora gerarchia organizzativa.

  • definisci anchor
  • aggiungi recursive step
  • limita livello
  • ordina per profondità

output atteso: uno script o query ripetibile con risultati verificabili.

start a brief