Clausola GROUP BY
Benvenuti al corso di SQL Intermedio!
Nella prima sezione, ci immergeremo in come possiamo raggruppare e aggregare i dati all'interno delle nostre tabelle.
Cerchiamo di capire cosa significa "raggruppare i dati" usando un semplice esempio di una tabella dei dipendenti:
Raggruppare i Dati
Abbiamo un compito di scoprire il numero di dipendenti in ciascun dipartimento. Per fare ciò, raggrupperemo i dati per la colonna department
e utilizzeremo l'aggregazione con la funzione COUNT(*)
.
Ecco come apparirà l'implementazione:
SELECT department, COUNT(*) AS number_of_employees FROM employees GROUP BY department
Quindi, come puoi vedere, la sintassi per raggruppare i dati è la seguente:
sql
Nota
AGG_FUNC
significa funzioni di aggregazione comeMAX
,MIN
,COUNT
, ecc.
Questa sintassi esiste per trovare determinati valori utilizzando funzioni di aggregazione in colonne specifiche.
Consideriamo un altro esempio: ci è stato chiesto di trovare il dipartimento con lo stipendio medio più alto.
Per recuperare tali dati, dobbiamo raggruppare i dati per la colonna department
e poi usare la funzione AVG()
per calcolare lo stipendio medio:
SELECT department, AVG(salary) as average_salary FROM employees GROUP BY department
In questa parte della sezione, lavoreremo con il database del sistema della metropolitana di Montreal, che contiene la tabella metro_travel_time
.
Questa tabella conterrà informazioni sulla linea della stazione(line_name
), il suo nome(station_name
) e la quantità di tempo che impiega un treno per viaggiare da una stazione all'altra(time_to_next_station
).
Ecco come appare questa tabella e l'anteprima dei dati in essa:
Come puoi vedere, questa è una tabella non complessa. Pensiamo a dove possiamo utilizzare il raggruppamento qui.
L'opzione più ovvia è raggruppare per i colori delle linee della metropolitana. Ciò significa che possiamo aggregare i dati, raggruppandoli per il colore della linea della metropolitana.
Alias
Negli esercizi, utilizzerai spesso un concetto chiamato alias. Un alias è essenzialmente un "soprannome" per una colonna che recuperi con un'istruzione SELECT
. È specificato utilizzando la seguente sintassi:
sql
Un alias influisce solo su come la colonna appare nella risposta.
Ad esempio, invece di MAX(time)
, la colonna potrebbe essere chiamata max_time
se assegni quell'alias. Questo rende l'output più leggibile e chiaro.
Swipe to start coding
Il tuo compito è trovare il tempo più lungo fino alla stazione successiva su ogni linea. Questo ci permetterà di determinare il tempo di viaggio più lungo tra le stazioni per ogni linea della metropolitana. Per fare ciò, utilizza la funzione MAX()
e assegnale l'alias max_time
, raggruppando i dati per la colonna line_name
.
Istruzioni Brevi
- Recupera la colonna
line_name
e il valore massimo della colonnatime_to_next_station
. - Aggiungi l'alias
max_time
per il valore massimo. - Raggruppa i dati per la colonna
line_name
.
Una volta completato questo compito, fai clic sul pulsante sotto il codice per verificare la tua soluzione.
Soluzione
Grazie per i tuoi commenti!