Finden Sie Quellen: „Having“ SQL – news – newspapers – books – scholar – JSTOR (September 2018) (Learn how and when to remove this template message)
Eine HAVING
-Klausel in SQL legt fest, dass eine SQL SELECT
-Anweisung nur Zeilen zurückgeben darf, deren Aggregatwerte die angegebenen Bedingungen erfüllen.
HAVING
und WHERE
werden von Anfängern oft verwechselt, aber sie dienen unterschiedlichen Zwecken. WHERE
wird in einer früheren Phase der Ausführung einer Abfrage berücksichtigt, indem es die aus den Tabellen gelesenen Zeilen filtert. Wenn eine Abfrage GROUP BY
enthält, werden die Daten aus den Tabellen gruppiert und aggregiert. Nach dem Aggregationsvorgang wird HAVING
angewendet, das die Zeilen herausfiltert, die nicht den angegebenen Bedingungen entsprechen. Daher gilt WHERE
für Daten, die aus Tabellen gelesen werden, und HAVING
sollte nur auf aggregierte Daten angewendet werden, die in der Anfangsphase einer Abfrage nicht bekannt sind.
Um die durch die GROUP BY
-Klausel gebildete aktuelle Bedingung anzuzeigen, wird die HAVING
-Klausel verwendet.