Gruppierung
Die Gruppierung in SQL ermöglicht es, Zeilen gruppenweise zusammenzufassen. Aggregatfunktionen (unten beschrieben) erlauben in der Folge dann weitere Aktionen. Wollen wir zum Beispiel herausfinden, wie viele Bestellungen jeder einzelne Kunde getätigt hat, ist das mit dem aktuellen Wissensstand mit einer Abfrage nicht möglich.
Die Gruppierung funktioniert in SQL mit dem Schlüsselwort GROUP BY. Im SELECT können, wenn ein GROUP BY verwendet wird, nur mehr Spalten angegeben werden, nach denen in der GROUP BY-Klausel gruppiert wurde, außer, die Spalten werden innerhalb einer Aggregatfunktion verwendet.
Ein Beispiel für eine SQL Abfrage mit einer Gruppierung:
Die Ausgabe sieht dann folgendermaßen aus:
In diesem Beispiel wurde bereits die Aggregatfunktion COUNT verwendet. Es wird zuerst nach der ID des Artikel und dessen Name gruppiert und anschließend werden mit COUNT alle Einträge (= Bestellungen) gezählt. Bei COUNT kann man in der Klammer sowohl den * angeben, als auch COUNT(id) verwenden, da die Anzahl der Einträge die Gleiche ist. Bei den Aggregatfunktionen MAX(), MIN(), AVG() und SUM() dagegen, ist es immer wichtig, welche Spalte angegeben wird, da hier die Werte, die in den Feldern stehen, von Bedeutung sind. Wie erwartet, gibt die Funktion MAX() den maximalen Wert innerhalb der Gruppierung zurück, MIN() den minimalen, AVG() berechnet den Durchschnitt und SUM() rechnet alle Werte innerhalb der Gruppierung zusammen.
HAVING Klausel
Tutorial zur Einschränkung von Gruppierungen mithilfe der HAVING Klausel
SELECT Statement
Tutorial zum SELECT Statement inkl. Erklärung zur Auswahl der ersten Zeilen.
INNER JOIN
Tutorial zu Abfragen auf mehreren Tabellen mit JOINs, insbesondere dem INNER JOIN
Subquery
Tutorial zu Unterabfragen/Subqueries mit Beispiel
SQL Tutorials
Hast du noch Fragen oder bist dir bei einer Aufgabe unsicher? Wirf einen Blick auf die SQL Tutorials!
Übersicht der Katas
Hier findest du die Erklärung zum Begriff "Katas" und eine Übersicht aller Programmierübungen.
Dojo - virtueller Übungsraum
Löse die Dojo-Aufgaben und werde Programmier-Profi!