Lektion 8: Gruppen auswählen

Welche Produkte wurden durchschnittlich mit mindestens 4 bewertet? Welche Kunden haben bereits mehr als 3 Bestellungen aufgegeben? Um solche Fragen zu beantworten, lernen Sie in dieser Lektion, wie Sie nach einer Gruppierung nur die Gruppen auswählen können, die bestimmte Bedingungen erfüllen.

Kurzbeschreibung der Datenbank Onlineshop

Die Datenbank enthält eine Tabelle Kunden und eine Tabelle Produkte mit Daten zu den Kundinnen und Kunden eines fiktiven Onlineshops bzw. zu den angebotenen Produkten.
In zwei weiteren Tabellen Bestellungen und Bestellpositionen werden die Daten zu den Bestellungen der Kundinnen und Kunden verwaltet. Die Tabelle Bestellungen enthält Daten, die die gesamte Bestellung betreffen, während die Tabelle Bestellpositionen einen Datensatz für jedes bestellte Produkt mit der entsprech Menge enthält und dieses einer Bestellung zuordnet.
Kundinnen und Kunden können Produkte auf einer Skala von 1 bis 5 bewerten und einen Kommentar dazu erstellen. Die entsprechenden Daten speichert die Tabelle Bewertungen.
Die Daten, die in der Datenbank gespeichert sind, stellen eine exemplarische, aber fiktive Auswahl typischer Daten dar, die in einer Datenbank eines Onlineshops zu finden sind.
Eine Übersicht über die Attribute der einzelnen Tabellen sowie die Beziehungen der Tabellen untereinander zeigt das realtionale Datenbankschema.

Lernaufgaben zur Datenbank Onlineshop

Sollen nach der Gruppierung nur Gruppen ausgewählt werden, die bestimmte Bedingungen erfüllen, so benötigen Sie dafür eine HAVING-Klausel. Diese wird nach der GROUP BY-Klausel ergänzt:
SELECT ...
FROM ...
WHERE ...
GROUP BY ...
HAVING Bedingung
ORDER BY ...
LIMIT ...
Eine Bedingung in der HAVING-Klausel bezieht sich auf eine Eigenschaft der Gruppe und damit in der Regel auf das Ergebnis einer Aggregatfunktion.
I) Geben Sie eine SQL-Anweisung ein, welche die Produkte nach dem Attribut Kategorie gruppiert und für jede Gruppe den Preis des teuersten Produktes bestimmt. Lassen Sie nur die Kategorien ausgeben, bei denen das teuerste Produkt mehr als 500 (€) kostet.