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 |