Junior
Wat is het verschil tussen de WHERE- en HAVING-uitspraken in SQL?
sobes.tech AI
Antwoord van AI
WHERE wordt toegepast vóór de groepering en filtert de rijen uit de FROM-resultaten. HAVING wordt toegepast na de groepering en filtert de groepen die gevormd zijn met GROUP BY.
Voorbeeld:
Stel dat we een tabel orders hebben met kolommen customer_id, order_date en amount.
Vind alle klanten waarvan het totale bestelbedrag meer dan 1000 is:
SELECT customer_id, SUM(amount)
FROM orders
GROUP BY customer_id
HAVING SUM(amount) > 1000;
Vind alle bestellingen met een bedrag van meer dan 1000:
SELECT customer_id, order_date, amount
FROM orders
WHERE amount > 1000;
Vergelijkingstabel:
| Kenmerk | WHERE | HAVING |
|---|---|---|
| Toepassing | Op individuele rijen vóór groepering | Op gegroepeerde rijen na groepering |
| Gebruikt | Kolommen uit FROM |
Gegevens van aggregatiefuncties en kolommen uit GROUP BY |
| Wordt uitgevoerd | Voor GROUP BY |
Na GROUP BY |
| Aggregatiefuncties | Kan niet direct gebruikt worden | Kan gebruikt worden |