4.6 Zusammenfassung
Wenn in einer SQL-Anweisung alle bisher behandelten Anweisungen vorkommen, dann in folgender Reihenfolge:
SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY ...
Bei Angabe von HAVING
werden Gruppen so lange in die Abfrageergebnisse aufgenommen,
wie sie der Bedingung entsprechen.
Ein HAVING
kann nur mit GROUP BY
benutzt werden, um die Kriterien anzugeben,
die Gruppen erfüllen müssen, um in den Abfrageergebnissen zu erscheinen. Wir filtern also mit
HAVING
die einzelnen gebildeten Gruppen! HAVING
kann beliebig viele
Filterbedingungen enthalten, die mit den Operatoren AND
oder OR
verbunden werden. Sie können auch NOT
benutzen, um das Ergebnis des Ausdrucks umzukehren.
In folgendem abschließenden Beispiel wollen wir einmal alle denkbaren Teile einer SQL - Anweisung verwenden.
Dazu lassen wir uns, nach dem Durchschnittslohn absteigend sortiert, alle Abteilungen anzeigen, bei denen dieser
Durchschnittslohn über 800 Euro liegt - dies aber nur für Mitarbeiter deren PositionsID zwischen 1 und 4 liegt:
[5]SELECT abteilung_ID AS Abteilung, AVG(bruttolohn) AS Durchschnittslohn
FROM tbl_mitarbeiter
WHERE position BETWEEN 1 AND 6
GROUP BY abteilung_ID
HAVING AVG(bruttolohn)>800
ORDER BY AVG(bruttolohn) DESC
Versuchen Sie in einem weiterem Schritt die Namen der Abteilungen anzeigen zulassen. Ein Tipp, es
muss noch ein JOIN
eingebaut werden.