SQL – Structured Query Language
GROUP BY – Gruppieren von Daten
Soll eine Relation in Teilrelationen zerlegt werden, ist es sinnvoll GROUP BY zu verwenden. In
diesem Fall wird die ausgewählte Tabelle zunächst nach einem bestimmten Kriterium zerlegt (z. B.
Anzahl der Zimmer pro Wohnung). Im nächsten Schritt kann z. B. die WHERE-Klausel oder eine
Aggregatfunktion angewendet werden.
Beispiel: Die Anzahl der Wohnungen, die mindestens 40 qm haben, gruppiert nach der Anzahl der
Zimmer pro Wohnung
SELECT [Link] AS [Zimmerwohnung], COUNT(*) AS [Anzahl Wohnungen]
FROM Vermieter
WHERE [Link]>=40
GROUP BY [Link];
Erklärung:
SELECT [Link] AS [Zimmerwohnung], COUNT(*) AS [Anzahl der Wohnungen]
FROM Vermieter Kriterium, nach dem die Tabelle zerlegt wird
Das Kriterium muss in der SELECT-Zeile und in der
WHERE [Link]>=40 GROUP BY-Zeile genannt werden.
In der SELECT-Zeile dürfen keine weiteren Spaltenbe-
zeichnungen genannt werden. Es sind nur Aggregat-
funktionen zulässig.
GROUP BY [Link];
Arbeitsauftrag 7:
1. Überführen Sie die Abfrage (Datenbank: „Wohnung“)!
2. Erstellen Sie Abfragen für folgende Problemstellungen!
a. Ausgabe der Anzahl an Wohnungen, die ab dem 01.05.2015 pro Stadtteil frei sind
b. Ausgabe der Anzahl an Wohnungen, die frei werden bzw. sind; geordnet nach dem
Datum (z. B. am 01.05.2015 werden 31 Wohnungen frei)
c. Ausgabe der Jahresmiete (Kaltmiete) pro Stadtteil, sortiert nach der Kaltmiete (auf-
steigend); Hinweis: ORDER BY wird nach GROUP BY eingefügt.
d. Ausgabe der Anzahl an 2-Zimmer-Wohnungen, in denen Kinder erlaubt und nicht er-
laubt sind
11