HAVING

Met HAVING is het mogelijk om een resultset met zogeheten aggregratie functies te limiteren. Deze functies kunnen namelijk niet in de WHERE clausule worden gebruikt.

SELECT kolomnaam
FROM Tabelnaam
GROUP BY kolomnaam
HAVING COUNT(kolomnaam2) > 2

In de query hierboven gebruiken we de COUNT functie. Dit is een aggregratie functie en om deze reden moeten we ook een GROUP BY gebruiken.

HAVING in de praktijk

De volgende dataset is de inhoud van de tabel Order.

ordernummer, klantnaam, orderbedrag
1, 'Henk Janssen', '23.20'
2, 'Mieke Sterk', '2.30'
3, 'Sjoerd Vermeulen', '12.93'
4, 'Mieke Sterk', '54.92'
5, 'Henk Janssen', '6.12'
6, 'Mieke Sterk', '9.60'

We willen alle klanten selecteren die meer dan 15 euro hebben besteed. We gebruiken hiervoor de SUM-functie

SELECT klantnaam, SUM(orderbedrag) as totaal
FROM Order
GROUP BY klantnaam
HAVING SUM(orderbedrag) > 15
klantnaam, totaal
'Henk Janssen', '29.32'
'Mieke Sterk', '66.92'