Mit Hilfe des Statements GROUP BY
lassen sich Zeilen einer Tabelle gruppieren. Das bedeutet Zeilen, die in den Inhalte aller angegebenen Spalten identisch sind, werden zu einer einzigen Zeile zusammengefasst:
1 |
SELECT * FROM tabelle GROUP BY spalte1, spalte2 |
Über beliebige Spalten können Aggregationsfunktionen ausgeführt werden. Dies macht vor allen Dingen für die Spalten Sinn, die nicht in dem GROUP BY
-Statement eingeschlossen sind.
Mit AVG()
lässt sich der Durchschnittswert berechnen:
1 |
SELECT spalte1, spalte2, AVG(spalte3) FROM tabelle GROUP BY spalte1, spalte2 |
Ebenso lässt sich das Minimum mit MIN()
berechnen:
1 |
SELECT spalte1, spalte2, MIN(spalte3) FROM tabelle GROUP BY spalte1, spalte2 |
Oder das Maximum mit MAX()
:
1 |
SELECT spalte1, spalte2, MAX(spalte3) FROM tabelle GROUP BY spalte1, spalte2 |
Auch Summieren der Werte ist möglich. Verwendet wird SUM()
1 |
SELECT spalte1, spalte2, SUM(spalte3) FROM tabelle GROUP BY spalte1, spalte2 |
Mit COUNT()
lässt sich die Anzahl der zusammengefassten Zeilen zählen:
1 |
SELECT spalte1, spalte2, COUNT(*) FROM tabelle GROUP BY spalte1, spalte2 |
Mit COUNT(DISTINCT ...)
lassen sich die voneinander unterschiedlichen Zeilen zählen. Ein GROUP BY
-Statement wird hier nicht angegeben:
1 |
SELECT COUNT(DISTINCT spalte1, spalte2) FROM tabelle |