Salta ai contenuti

Funzioni aggregate

A volte non ti interessa leggere tutti i dati uno per uno. Vuoi un riassunto.

Per esempio:

  • quanti ordini ci sono?
  • quanto abbiamo incassato?
  • qual è il prezzo più alto?
  • qual è la media dei voti?

Le funzioni aggregate servono proprio a questo: prendono molte righe e restituiscono un risultato riassuntivo.

Questa query conta quante righe ci sono nella tabella ordini:

SELECT COUNT(*)
FROM ordini;

Se la tabella contiene 125 ordini, il risultato sarà un numero solo: 125.

COUNT(*) significa “conta le righe”.

Ecco le aggregate che incontrerai più spesso:

FunzioneCosa fa
COUNT()conta righe o valori
SUM()somma numeri
AVG()calcola una media
MIN()trova il valore più basso
MAX()trova il valore più alto

Per sommare il totale degli ordini:

SELECT SUM(totale)
FROM ordini;

Per calcolare il prezzo medio dei prodotti:

SELECT AVG(prezzo)
FROM prodotti;

Per trovare il prezzo più alto:

SELECT MAX(prezzo)
FROM prodotti;

Per trovare il prezzo più basso:

SELECT MIN(prezzo)
FROM prodotti;

Ogni query restituisce un solo valore, perché stai chiedendo un riassunto.

Il nome automatico della colonna può essere poco leggibile. Per questo puoi usare AS:

SELECT COUNT(*) AS numero_ordini
FROM ordini;

Ora il risultato avrà una colonna chiamata numero_ordini.

È un dettaglio piccolo, ma rende le query molto più chiare, soprattutto nei report.

NULL significa “dato mancante”.

Le aggregate lo trattano in modo particolare:

  • COUNT(*) conta le righe, anche se alcune colonne hanno valori mancanti.
  • COUNT(colonna) conta solo le righe in cui quella colonna ha un valore.
  • SUM(), AVG(), MIN() e MAX() di solito ignorano i valori NULL.

La cosa importante da ricordare è questa: mancante non significa zero.

  • Le funzioni aggregate riassumono molte righe.
  • COUNT(*) conta le righe.
  • SUM() somma, AVG() calcola la media.
  • MIN() e MAX() trovano il valore più basso e più alto.
  • Con AS puoi dare un nome leggibile al risultato.