Le funzioni aggregate... Queste cose sono dei veri maghi nel mondo dell'analisi dei dati! Ti permettono di trasformare milioni di righe di dati in risultati compatti e chiari. Con loro puoi contare, trovare minimi e massimi, calcolare medie e fare un sacco di altre operazioni. Ok, ora vediamo tutto step by step.
Le funzioni aggregate sono funzioni speciali di SQL che fanno operazioni su gruppi di righe e restituiscono un solo risultato. Se vuoi un paragone, è come raccogliere tutte le statistiche sul tuo caffè mattutino, tipo: quante tazze hai bevuto in una settimana, se hai aggiunto zucchero o per quanti giorni di fila hai messo la panna.
Esempi di problemi che risolvono le funzioni aggregate:
- Contare il numero totale di record in una tabella.
- Trovare i valori minimi o massimi in una colonna numerica.
- Sommare i valori in una delle colonne.
- Calcolare la media di tutti i valori di una colonna.
- Selezionare i valori unici.
Come funziona "sotto il cofano"?
SQL esegue una funzione aggregata dopo aver selezionato i dati con SELECT. Per esempio, quando scrivi SUM() o AVG(), SQL prima raccoglie i dati e poi fa il calcolo solo sulle righe selezionate.
Le principali funzioni aggregate in PostgreSQL
Passiamo subito alla pratica e vediamo la top 5 dei nostri eroi:
COUNT()— conta il numero di righe.SUM()— somma i valori di una colonna numerica.AVG()— calcola il valore medio.MIN()— trova il valore minimo.MAX()— trova il valore massimo.
Esempi di utilizzo delle funzioni aggregate
- Contare le righe con
COUNT()
La funzione COUNT() ti permette di contare il numero totale di righe in una tabella o il numero di valori non vuoti in una colonna specifica.
Esempio: supponiamo di avere una tabella students che contiene info sugli studenti:
| id | name | age | grade |
|---|---|---|---|
| 1 | Otto Art | 20 | 85 |
| 2 | Maria Chi | 22 | 90 |
| 3 | Alex Lin | 21 | 78 |
| 4 | Anna Song | 23 | NULL |
Contiamo il numero totale di studenti:
SELECT
COUNT(*) AS totale_studenti
FROM students;
Risultato:
| totale_studenti |
|---|
| 4 |
Ora contiamo quanti studenti hanno il grade indicato:
SELECT
COUNT(grade) AS studenti_con_voto
FROM students;
Risultato:
| studenti_con_voto |
|---|
| 3 |
Perché succede questo? Perché COUNT(column) ignora i valori NULL.
- Somma con
SUM()
La funzione SUM() si usa per sommare tutti i valori in una colonna numerica.
Esempio: vediamo quanti punti totali hanno preso i nostri studenti.
SELECT
SUM(grade) AS totale_voti
FROM students;
Risultato:
| totale_voti |
|---|
| 253 |
Nota: Se nella colonna c'è NULL, viene semplicemente ignorato nella somma.
- Valore medio con
AVG()
La funzione AVG() calcola la media di tutti i valori numerici nella colonna.
Esempio: calcoliamo la media dei voti degli studenti.
SELECT
AVG(grade) AS media_voti
FROM students;
Risultato:
| media_voti |
|---|
| 84.33 |
Hai notato che NULL viene di nuovo ignorato.
- Minimo e massimo con
MIN()eMAX()
A volte serve trovare il valore più piccolo o più grande. Per questo ci sono MIN() e MAX().
Esempio: Troviamo lo studente più giovane e quello più vecchio.
SELECT
MIN(age) AS studente_piu_giovane,
MAX(age) AS studente_piu_vecchio
FROM students;
Risultato:
| studente_piu_giovane | studente_piu_vecchio |
|---|---|
| 20 | 23 |
Parleremo di più su queste funzioni nelle prossime lezioni.
Incontriamo NULL
Su NULL ci sarà una lezione a parte, ma in breve, NULL è l'assenza di un valore. Niente. Vuoto. Zero, proprio così!
Supponiamo di avere una tabella students che contiene info sugli studenti:
| id | name | age | grade | hobbie |
|---|---|---|---|---|
| 1 | Otto Art | 20 | 85 | |
| 2 | Maria Chi | 22 | 90 | Danza |
| 3 | Alex Lin | 21 | 78 | |
| 4 | Anna Song | 23 |
Nome e età ci sono sempre, ma voto e hobby possono mancare. Se in una cella della tabella non c'è proprio nessun valore, si dice che contiene NULL. NULL non è un numero e nemmeno una stringa, è un codice speciale che indica l'assenza di qualsiasi valore.
GO TO FULL VERSION