5.3 HAVING
Definition
HAVING filtert gruppierte Ergebnisse nach einer Bedingung.
HAVING wird zusammen mit GROUP BY und Aggregatfunktionen verwendet.
Grundaufbau
SELECT spalte, aggregatfunktion
FROM tabelle
GROUP BY spalte
HAVING bedingung;
Beispiel
SELECT ort, COUNT(*)
FROM kunde
GROUP BY ort
HAVING COUNT(*) > 5;
Bedeutung:
Es werden nur Orte angezeigt, in denen mehr als 5 Kunden vorhanden sind.
WHERE und HAVING
| Klausel | Aufgabe |
|---|---|
| WHERE | filtert einzelne Datensätze vor der Gruppierung |
| HAVING | filtert Gruppen nach der Gruppierung |
Beispiel WHERE
SELECT *
FROM kunde
WHERE ort = 'Berlin';
Filtert einzelne Kunden aus Berlin.
Beispiel HAVING
SELECT ort, COUNT(*)
FROM kunde
GROUP BY ort
HAVING COUNT(*) > 5;
Filtert Gruppen mit mehr als 5 Kunden.
Merksatz
WHERE filtert Datensätze.
HAVING filtert Gruppen.
Prüfungshinweis
In IHK-Aufgaben wird häufig der Unterschied zwischen WHERE und HAVING abgefragt.
Typische Fehler:
- HAVING ohne GROUP BY verwenden.
- Aggregatfunktionen in WHERE verwenden.
- WHERE und HAVING verwechseln.
- HAVING vor GROUP BY schreiben.
Quellen
- IT-Handbuch für Fachinformatiker