IniziaInizia gratis

SQL in breve (2)

Un'altra attività comune con i database è l'aggregazione, cioè ridurre i dati suddividendoli in gruppi e riassumendo ciascun gruppo.

In SQL questo si fa con il comando GROUP BY. Questo comando suddivide i dati in gruppi e applica a ciascun gruppo una funzione indicata nella tua istruzione SELECT.

Per esempio, se volessi contare il numero di voli da ciascuno di due aeroporti di origine, potresti usare la query

SELECT COUNT(*) FROM flights
GROUP BY origin;

GROUP BY origin dice a SQL che vuoi che l'output abbia una riga per ogni valore univoco della colonna origin. L'istruzione SELECT seleziona i valori con cui riempire ciascuna colonna. Qui vogliamo COUNT() di ogni riga in ciascun gruppo.

È possibile usare GROUP BY su più di una colonna. In tal caso, la tabella risultante avrà una riga per ogni combinazione dei valori univoci di ciascuna colonna. La query seguente conta il numero di voli da SEA e PDX verso ogni aeroporto di destinazione:

SELECT origin, dest, COUNT(*) FROM flights
GROUP BY origin, dest;

L'output avrà una riga per ogni combinazione dei valori in origin e dest (cioè una riga che elenca ogni coppia origine–destinazione servita da un volo). Ci sarà anche una colonna con il COUNT() di tutte le righe in ciascun gruppo.

Ricorda: una panoramica più approfondita di SQL è disponibile qui.

Quale informazione restituisce questa query? Ricorda che la tabella flights contiene informazioni sui voli partiti da PDX e SEA nel 2014 e 2015. Nota che la funzione AVG() calcola il valore medio di una colonna!

SELECT AVG(air_time) / 60 FROM flights
GROUP BY origin, carrier;

Questo esercizio fa parte del corso

Fondamenti di PySpark

Visualizza il corso

Esercizio pratico interattivo

Passa dalla teoria alla pratica con uno dei nostri esercizi interattivi

Inizia esercizio