Sobes.tech
Junior — Middle

Qual è la funzione dell'operatore HAVING in SQL e in cosa differisce da WHERE?

sobes.tech AI

Risposta dell'AI

La clausola HAVING in SQL viene utilizzata per filtrare i risultati dopo aver raggruppato i dati con GROUP BY. Permette di impostare condizioni per i dati aggregati.

Differenze rispetto a WHERE:

  • WHERE filtra le righe prima del raggruppamento, lavora con singoli record.
  • HAVING filtra i gruppi dopo l'aggregazione.

Esempio:

SELECT dipartimento, COUNT(*) AS numero_dipendenti
FROM dipendenti
GROUP BY dipartimento
HAVING COUNT(*) > 10;

Qui, WHERE non può essere usato per filtrare con COUNT(*), poiché è una funzione di aggregazione, mentre HAVING permette di selezionare solo i dipartimenti con più di 10 dipendenti.