Sobes.tech
Junior — Middle

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

sobes.tech AI

Risposta dell'AI

In SQL, le condizioni WHERE e HAVING vengono utilizzate per filtrare i dati, ma si applicano in fasi diverse dell'elaborazione della query:

  • WHERE filtra le righe prima della suddivisione in gruppi e dell'aggregazione. Limita il set di dati che verrà utilizzato nella query.
  • HAVING filtra i gruppi dopo l'applicazione delle funzioni di aggregazione (ad esempio, SUM, COUNT, AVG). Viene usato per limitare i risultati dell'aggregazione.

Esempio:

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

Qui, WHERE seleziona i dipendenti con salario superiore a 50000, e HAVING filtra i dipartimenti con più di 10 dipendenti.