SQL HAVING Befehl
Das SQL HAVING–Statement ist das SQL WHERE in einem SQL GROUP BY-Statement. Es ermöglicht eine gruppierte Ergebnismenge einzuschränken. Mit SQL HAVING kann die Ergebnismenge auf Basis der Aggregatfunktionen (AVG, COUNT, MAX, MIN, SUM) eingeschränkt und ausgegeben werden.SQL HAVING BY Syntax
Die SQL HAVING Syntax einer Select-Abfrage mit GROUP BY ist wie folgt aufgebaut:
SELECT spaltenname FROM tabellenname [WHERE Bedingung] GROUP BY spaltenname HAVING Ausdruck;
Mithilfe des HAVING wird definiert, wie die gruppierte Datenmenge eingeschränkt werden soll. Die Ergenismenge kann nach mehrere Spalten eingeschränkt werden.
SQL HAVING Beispiel
Gegeben sei folgende Tabelle namens "Auto":
Auto | KM-Stand | Baujahr |
Auto 1 | 30 000km | 2002 |
Auto 2 | 10 000km | 2010 |
Auto 3 | 20 000km | 2010 |
Auto 4 | 30 000km | 2001 |
Wir sind nun ein Autoverkäufer und möchten wissen, wie viele Autos das Baujahr 2010 und einen Kilometerstand unter 15 000km in unserem Repertoire besitzen.
Das SQL Statement mit der HAVING-Bedingung würde wie folgt aussehen:
SELECT Baujahr, COUNT(Baujahr) AS AnzahlAutos FROM Auto WHERE Baujahr='2010' GROUP BY Baujahr,KM-Stand HAVING KM-Stand < 15000;
Das Ergebnis würde wie folgt aussehen:
Baujahr | Count(Baujahr) |
2010 | 1 |
Als Ergebnis erhalten wir ein Auto, das aus dem Baujahr 2010 ist und weniger als 15000 km Laufleistung hat, angezeigt.