Sobes.tech
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.