Skip to main content

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