Le funzioni di aggregazione calcolano un singolo valore da un insieme di righe — COUNT, SUM, AVG, MIN, . Sono essenziali per riepilogare i dati (totali, medie, conteggi), soprattutto combinate con .
Le funzioni di aggregazione calcolano un singolo valore da un insieme di righe — COUNT, SUM, AVG, MIN, . Sono essenziali per riepilogare i dati (totali, medie, conteggi), soprattutto combinate con .
MAXGROUP BYSELECT
COUNT(*) AS total_rows, -- count all rows
COUNT(email) AS rows_with_email, -- count NON-NULL emails (ignores NULLs!)
SUM(amount) AS total_amount, -- sum of a column
AVG(price) AS average_price, -- average
MIN(price) AS lowest, -- minimum
MAX(price) AS highest -- maximum
FROM orders;
Ogni funzione riduce molte righe a un unico valore. SUM/AVG funzionano su numeri; MIN/MAX su numeri, date o testo; COUNT su qualsiasi cosa.
COUNT(*) -- counts ALL rows (including those with NULLs)
COUNT(email) -- counts only rows where email is NOT NULL
COUNT(DISTINCT country) -- counts UNIQUE non-null values
COUNT(*) conta tutte le righe, ma COUNT(column) conta solo le righe in cui quella colonna non è NULL — una distinzione sottile ma importante. COUNT(DISTINCT col) conta i valori univoci.
-- aggregate PER GROUP instead of the whole table
SELECT country, COUNT(*) AS users, AVG(age) AS avg_age
FROM users
GROUP BY country; -- one result row per country
-- → for each country: how many users and their average age
Senza GROUP BY, un'aggregazione riepiloga l'intero risultato in una riga. Con GROUP BY, produce una riga di riepilogo per ogni gruppo — l'uso tipico e potente.
-- ❌ ERROR — can't mix an aggregate with a non-grouped column
SELECT name, COUNT(*) FROM users; -- which name? ambiguous
-- ✅ either group by it, or only select aggregates
SELECT country, COUNT(*) FROM users GROUP BY country;
Le funzioni di aggregazione sono essenziali per riepilogare e analizzare i dati — il calcolo di totali, medie, conteggi ed estremi è una necessità costante nel reporting, nell'analisi, nei dashboard e nella logica applicativa, quindi comprenderle è una conoscenza SQL fondamentale.
Conoscere le funzioni principali (COUNT, SUM, AVG, MIN, MAX) e come riducono insiemi di righe a singoli valori è necessario per qualsiasi riepilogo di dati.
Un dettaglio importante e comunemente frainteso è la distinzione tra COUNT(*) e COUNT(column) (COUNT(*) conta tutte le righe, COUNT(column) conta solo i valori non NULL — che possono dare risultati diversi e sorprendenti), insieme a COUNT(DISTINCT) per i valori univoci.
Il più potente è combinare le aggregazioni con GROUP BY per produrre riepiloghi per gruppo (conteggi/medie per categoria) — la base delle query analitiche.
Comprendere il gotcha che non si possono mescolare aggregazioni con colonne non raggruppate (un errore comune) è importante.
Poiché riepilogare i dati è un compito di database ubiquo (ogni report, dashboard e query di analisi utilizza aggregazioni), e poiché comprendere le funzioni, le sottigliezze di COUNT, e soprattutto la loro combinazione con GROUP BY è fondamentale per l'analisi dei dati in SQL, padroneggiare le funzioni di aggregazione è una conoscenza essenziale, frequentemente applicata, fondamentale per lavorare con i dati — facendo da ponte tra le query di base e il potere analitico e di riepilogo che rende SQL prezioso per il reporting e gli insight.