Having Tutorial

HAVING Klausel

In SQL kann man nicht nur die Tabelle, die man abfragen möchte, schon vor der Gruppierung mit der WHERE-Klausel einschränken, sondern auch nach der Gruppierung noch mit der HAVING-Klausel. Die HAVING-Klausel wird zumeist mit Aggregatfunktionen verwendet. Möchte man zum Beispiel für jede Bestellung, deren Gesamtkosten 200.000 € überstiegen hat, die Kosten ausgeben, so ist das mit folgendem SQL-Statement möglich:

SELECT orderid, SUM(price*quantity) AS Kosten
FROM orderarticle INNER JOIN article ON id = articleid
GROUP BY orderid
HAVING SUM(price*quantity) > 200000;

Es werden hier die beiden Tabellen OrderArticle und Article mit einem Inner Join zusammengefügt, anschließend wird nach der Bestellnummer gruppiert und am Ende wird in der HAVING Klausel sichergestellt, dass die Summe der Kosten höher als 200 € ist. Das Ergebnis wäre folgendes:

Ausgabe mit Having Klausel

Ohne HAVING Klausel hätte die Ausgabe folgendermaßen ausgesehen:
Ausgabe ohne Having Klausel