Zurück

Gruppieren mit Bedingungen

Vor
Die HAVING - KlauselÜbungen

Die HAVING - Klausel

Oft werden bei einer Gruppierung nur die Gruppen gewünscht, die bestimmte Bedingungen erfüllen. Entsprechende Bedingungen werden in der HAVING - Klausel formuliert. Dabei dürfen Gruppierungsausdrücke verwendet werden.

In welchen Jahren traten mindestens zwei Schülerinnen bzw. Schüler in die Schule ein?

SQL - AnfrageErgebnis - Tabelle
SELECT Eintrittsjahr
FROM Schueler
GROUP BY Eintrittsjahr
HAVING COUNT (*) > 1 ;

Übungsdatenbank

Das System gruppiert zuerst alle Datentupel gemäß dem Eintrittsjahr und überprüft im Anschluss, welche dieser Gruppen mehr als ein Tupel enthält. Die entsprechenden Gruppen werden dann ausgegeben.

Grundsätzlich werden Anfragen mit einer GROUP BY - Klausel in folgender Reihenfolge bearbeitet:

  1. Auswahl der Tupel durch die WHERE - Klausel
  2. Bildung der Gruppen durch die GROUP BY - Klausel
  3. Auswahl der Gruppen, die die HAVING - Klausel erfüllen.

Zu welchem Fach gibt es nur eine Lehrkraft?

Welche Klassen haben derzeit mehr als 10 Stunden Unterricht? Auszugeben sind die Klasse und deren Gesamtstundenzahl.

Ist folgende Anfrage vernünftig?
SELECT Konfession
FROM Schueler
WHERE gehoert_zu = 11
GROUP BY Konfession
HAVING COUNT(*) = 0 ;

zu Abschnitt 12.

Aufgabe 19
In welchen Ländern gibt es mindestens 5 Kunden?
Aufgabe 20
Von welchen Kategorien sind mehr als 200 Artikel im Lager? (Ausgabe der Kategorienummer und des jeweiligen Gesamtbestandes pro Kategorie)