Sobes.tech
Junior — Middle

Qual è la differenza tra la condizione HAVING e la condizione WHERE quando si lavora con query SQL?

sobes.tech AI

Risposta dell'AI

La differenza principale tra WHERE e HAVING in SQL:

  • WHERE filtra le righe prima della aggregazione (GROUP BY). Si applica ai singoli record della tabella.
  • HAVING filtra i gruppi dopo aver eseguito l'aggregazione. Viene usato per condizioni su funzioni aggregate (ad esempio, COUNT, SUM).

Esempio:

SELECT dipartimento, COUNT(*) as numero_dipendenti
FROM dipendenti
WHERE salario > 50000    -- filtra i dipendenti con salario superiore a 50000
GROUP BY dipartimento
HAVING COUNT(*) > 10     -- seleziona i dipartimenti con più di 10 dipendenti

Qui, WHERE seleziona le righe per la aggregazione, e HAVING filtra i dati già raggruppati.