OnderwerpenSpiekbriefjeLessen
Lurndo › Onderwerpen › HAVING

SQL leren: HAVING

Groepen filteren met HAVING

Laatste vraag van Lien: "Op welke landen moet ik volgend jaar mikken? Alleen de landen die echt iets opbrachten." Daarvoor moet je niet de rijen filteren, maar de groepen.

HAVING filtert groepen

WHERE filtert rijen, HAVING filtert groepen. Het komt na GROUP BY en mag aggregatiefuncties gebruiken: hier blijven alleen de landen met meer dan vijf verhuringen over.

SELECT klant_land, COUNT(*) AS verhuringen FROM verhuringen GROUP BY klant_land HAVING COUNT(*) > 5
Resultaat
klant_landverhuringen
België10
Duitsland6
Nederland9

WHERE vóór, HAVING na het groeperen

De database werkt in deze volgorde: WHERE gooit rijen weg, GROUP BY maakt groepen, HAVING gooit groepen weg, ORDER BY sorteert. Een functie als SUM in WHERE geeft daarom een fout: de groepen bestaan dan nog niet.

Je mag ze samen gebruiken. Hier: alleen augustus, en alleen de fietstypes die toen meer dan 100 euro opbrachten.

SELECT fietstype, SUM(bedrag) AS omzet FROM verhuringen WHERE start_datum BETWEEN '2025-08-01' AND '2025-08-31' GROUP BY fietstype HAVING SUM(bedrag) > 100
Resultaat
fietstypeomzet
e-bike267
stadsfiets101

Probeer het zelf

Welke merken hebben meer dan twee fietsen? Toon het merk en het aantal.

Klaar voor meer?

De volledige les heeft 6 oefeningen, van makkelijk naar uitdagend, met hints, punten en een reeks die je kan opbouwen.

Begin aan de les
← VorigePer groep met GROUP BYVolgende →Sleutels verbinden tabellen
SQL-onderwerpenSpiekbriefjeExcelRanglijstAccountPrivacyEnglish