Sobes.tech
Junior

Qual è la differenza tra le istruzioni WHERE e HAVING in SQL?

sobes.tech AI

Risposta dell'AI

WHERE viene applicato prima del raggruppamento e filtra le righe risultanti di FROM. HAVING viene applicato dopo il raggruppamento e filtra i gruppi formati con GROUP BY.

Esempio:

Supponiamo di avere una tabella orders con colonne customer_id, order_date e amount.

Trovare tutti i clienti con un totale di ordini superiore a 1000:

SELECT customer_id, SUM(amount)
FROM orders
GROUP BY customer_id
HAVING SUM(amount) > 1000;

Trovare tutti gli ordini con un importo superiore a 1000:

SELECT customer_id, order_date, amount
FROM orders
WHERE amount > 1000;

Tabella di confronto:

Caratteristica WHERE HAVING
Applicazione Su singole righe prima del raggruppamento Su gruppi di righe dopo il raggruppamento
Utilizza Colonne di FROM Funzioni aggregate e colonne di GROUP BY
Si esegue Prima di GROUP BY Dopo GROUP BY
Funzioni aggregate Non può essere usato direttamente Può essere usato