Le funzioni di aggregazione in SQL sono estremamente potenti in quanto consentono di effettuare dei calcoli statistici sui dati ed inoltre la compattazione dei dati per determinati valori, ma vediamo una per una queste funzioni. La prima è il “GROUP BY” che non consente di calcolare nulla, ma di aggregare i dati solamente; se per esempio abbiamo il nostro database dei Comuni, che ricordo potete scaricare dai nostri sorgenti per il calcolo del codice fiscale, possiamo vedere tutte le province una per una raggruppando il campo provincia e lo possiamo anche mettere in ordine alfabetico, ricordo che “ORDER BY” serve per ordinare i dati e di default lo fa in modo ascendente, se dopo inseriamo “DESC” allora verranno ordinati in maniera discendente.
SELECT Provincia FROM Comuni GROUP BY Provincia HAVING Provincia <> ‘EE’ ORDER BY Provincia
Noterete che al posto di “WHERE” ho inserito “HAVING” in quanto per filtrare un campo inserito in un raggruppamento si deve utilizzare “HAVING“, mentre se non incluso normalmente “WHERE“.
Vediamo ora “SUM” che come dice la parola stessa consente di fare la somma di valori numerici, ad esempio per calcolare la somma di una certa misura scriveremo:
SELECT SUM(Peso) AS Totale FROM Articoli WHERE Articolo LIKE ‘a*’
In questa query viene calcolata la somma dei pesi di tutti gli articoli che iniziano con una “A” ed al campo viene assegnato con “AS” il nome “Totale”.
Le funzioni di aggregazioni numeriche, che vengono utilizzate tutte come nell’esempio precedente, sono:
- SUM – Calcola la somma dei valori.
- AVG – Calcola la media ( average ) dei valori.
- MIN – Estrae il minimo dei valori.
- MAX – Estrae il massimo dei valori.
- COUNT – Conta il numero dei valori.
- STDEV – Calcola la deviazione standard dei valori.
- VAR – Calcola la varianza dei valori.
- FIRST – Restituisce il primo dei valori.
- LAST – Restituisce l’ultimo dei valori.
Oltre a queste funzioni di aggregazione possiamo fare noi i calcoli con i valori contenuti nei campi, per esempio aumentare il ricarico di tutti gli articoli appartententi ad un certo gruppo del 4%.
UPDATE Articoli SET Prezzo = Prezzo * .04 WHERE Gruppo = 1
Ma questo lo vedremo meglio la prossima volta.