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.