SQL HAVING statement
- Vorige pagina SQL Group By
- Volgende pagina SQL ucase()
HAVING-clausule
De reden om een HAVING-clausule toe te voegen in SQL is omdat de WHERE-sleutel niet kan worden gebruikt met samenvattende functies.
SQL HAVING syntaxis
SELECT kolomnaam, aggregatiefunctie(kolomnaam) FROM tabelnaam WHERE kolomnaam operator waarde GROUP BY kolomnaam HAVING aggregatiefunctie(kolomnaam) operator waarde
SQL HAVING voorbeeld
We hebben de volgende "Orders"-tabel:
O_Id | OrderDate | OrderPrice | Customer |
---|---|---|---|
1 | 2008/12/29 | 1000 | Bush |
2 | 2008/11/23 | 1600 | Carter |
3 | 2008/10/05 | 700 | Bush |
4 | 2008/09/28 | 300 | Bush |
5 | 2008/08/06 | 2000 | Adams |
6 | 2008/07/21 | 100 | Carter |
Nu willen we klanten vinden met een order totaalbedrag minder dan 2000.
We gebruiken de volgende SQL-query:
SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer HAVING SUM(OrderPrice)<2000
De resultaten zijn vergelijkbaar:
Customer | SUM(OrderPrice) |
---|---|
Carter | 1700 |
Nu willen we klanten vinden die "Bush" of "Adams" hebben met een order totaalbedrag van meer dan 1500.
We hebben een gewone WHERE-clausule toegevoegd aan de SQL-query:
SELECT Customer,SUM(OrderPrice) FROM Orders WHERE Customer='Bush' OR Customer='Adams' GROUP BY Customer HAVING SUM(OrderPrice)>1500
Resultaten:
Customer | SUM(OrderPrice) |
---|---|
Bush | 2000 |
Adams | 2000 |
- Vorige pagina SQL Group By
- Volgende pagina SQL ucase()