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.