Die SQL GROUP BY Anweisung ordnet die Zeilen einer Abfrage in Gruppen an.
SELECT Spalte
FROM Tabelle
WHERE Bedingung
GROUP BY Spalte
ORDER BY Spalte [ASC/DESC];
Die Gruppen werden durch die Spalten bestimmt, die in der GROUP BY Anweisung angegeben wurden. Wenn die ausgewählten Spalten gleiche Werte in verschiedenen Zeilen haben, werden diese Zeilen in einer Gruppe angeordnet.
In der Abfrage wird GROUP BY zwischen der WHERE und ORDER BY Klausel gesetzt, damit der Code funktioniert.
Die GROUP BY Anweisung wird häufig in Kombination mit Aggregatfunktionen wie MIN( ), MAX( ), AVG( ), SUM( ) und COUNT() genutzt, um den jeweiligen Funktionen Gruppen anstatt einer ganzen Tabelle zuzuordnen.
SQL GROUP BY in einzelnen Spalten
Die Gehaltstabelle eines Unternehmens wird monatlich erweitert. Um das gesamte Gehalt eines Mitarbeiters wiederzugeben, welches er im Laufe der Zeit verdient hat, wird folgender Befehl genutzt:
SELECT Name, SUM(Gehalt)
FROM Mitarbeiter
GROUP BY Name;
SQL GROUP BY in mehreren Spalten
Werden mehrere Spalten in der SELECT Anweisung angegeben, müssen alle auch in der GROUP BY Anweisung stehen.
Für eine Übersicht, aus welchen Städten ihre Kunden bestellen, möchte ein Unternehmen seine Kunden nach Stadt und Bundesland gruppieren und abzählen, wie viele Kunden aus der jeweiligen Stadt kommen:
SELECT Stadt, Bundesland, COUNT(Kunden_ID) AS Anzahl_Kunden
FROM Kunden
GROUP BY Stadt, Bundesland
ORDER BY Bundesland, Stadt;