Junior — Middle
Wat is het verschil tussen de voorwaarden HAVING en WHERE bij het opstellen van SQL-query's?
sobes.tech AI
Antwoord van AI
In SQL dienen de WHERE- en HAVING-voorwaarden om gegevens te filteren, maar ze worden toegepast in verschillende fasen van de query-verwerking:
- WHERE filtert rijen vóór het groeperen. Het wordt gebruikt om de dataset die wordt geaggregeerd te beperken.
- HAVING filtert de groepen nadat aggregatiefuncties (bijvoorbeeld SUM, COUNT) zijn toegepast.
Voorbeeld:
SELECT afdeling, COUNT(*) as aantal_medewerkers
FROM medewerkers
WHERE salaris > 50000 -- filtering op salaris vóór groepering
GROUP BY afdeling
HAVING COUNT(*) > 10; -- filtering van groepen met meer dan 10 medewerkers
Hier worden eerst medewerkers met een salaris hoger dan 50000 geselecteerd (WHERE), daarna worden de gegevens gegroepeerd op afdeling, en alleen de afdelingen met meer dan 10 medewerkers passeren de HAVING-filter.