CodeStart.it
Corsi SQL CTE con WITH
King · Applica · Capitolo 16 di 17

CTE con WITH

SQLLettura + laboratorioCorso gratuito
Che cosa imparerai

Le Common Table Expressions danno un nome a un risultato temporaneo all’interno di una query.

1. Il concetto, spiegato da zero

Le Common Table Expressions danno un nome a un risultato temporaneo all’interno di una query.

WITH rende leggibili query a più fasi. La CTE viene usata dalla SELECT principale e aiuta a suddividere problemi complessi.

2. Un esempio ragionato

Osserva l’esempio e leggi ogni istruzione nell’ordine. Prima di provarlo, fermati a prevedere cosa succederà; capire il motivo del risultato è più importante che memorizzare la sintassi.

Codice di esempio · SQL
WITH alte_medie AS (SELECT classe_id, AVG(voto) AS media FROM studenti GROUP BY classe_id)
SELECT classe_id, ROUND(media, 1) AS media FROM alte_medie ORDER BY classe_id;
Query di prova

Risultati confrontati con una tabella di riferimento, usando dati di esercitazione.

Come leggere questo esempio

  1. Prima di eseguire, prova a prevedere il risultato dell’esempio.
  2. Spiega con parole tue in che modo “cte con with” risolve un problema concreto.
  3. Rileggi ogni riga del programma e individua i valori che vengono creati o modificati.
  4. Modifica un valore; confronta il comportamento e annota che cosa è cambiato.
Errore frequente
Usare troppe CTE senza una logica chiara può rendere più difficile capire la query, non più semplice.

3. Adesso tocca a te

Obiettivo dell’esercizio: Calcola medie per classe con una CTE.

Puoi partire dall’esempio, riprodurlo e poi modificarlo. La soluzione di riferimento è disponibile sotto, ma conviene aprirla soltanto dopo un primo tentativo.

Laboratorio: metti alla prova il codice

SQL · sql

Le query SQLite girano su dati di esempio in un database temporaneo nel browser. A ogni prova il database ricomincia da zero.

Output / esito del controllo

Il risultato comparirà qui.
Mostra la soluzione di riferimento
Codice di esempio · SQL
WITH alte_medie AS (SELECT classe_id, AVG(voto) AS media FROM studenti GROUP BY classe_id)
SELECT classe_id, ROUND(media, 1) AS media FROM alte_medie ORDER BY classe_id;

Confronta il tuo procedimento con quello dell’esempio. Una soluzione differente può essere altrettanto valida se produce risultati corretti.

4. Verifica e ripasso

Quiz: hai capito il concetto?

Quale delle seguenti affermazioni è corretta per questo capitolo?

Seleziona una risposta

Promemoria

WITH rende leggibili query a più fasi. La CTE viene usata dalla SELECT principale e aiuta a suddividere problemi complessi.

5. Come proseguire

Prima del capitolo successivo, prova a spiegare il concetto a un amico senza leggere il codice. Se non riesci, torna all’esempio e fai una nuova variante: imparare significa anche sperimentare.

← Capitolo precedente