id | farbe | zahl | baum |
1 | rot | 1 | eiche |
2 | grün | 2 | eiche |
3 | grün | 1 | eiche |
GROUP BY sorgt in erster Linie dafür, dass wenn nach den entsprechenden Kriterien mehrere Datensätze den selben Inhalt haben wird nur noch ein Datensatz angezeigt.
Beispiel
id farbe zahl baum 1 rot 1 eiche 2 grün 2 eiche 3 grün 1 eiche
Machst du jetzt nur einen Select auf den Baum, würdest du dreimal den selben Wert zurückerhalten. Machst du aber ein GroupBy auf den Baum, wird dir die Eiche nur einmal angezeigt.
SELECT baum, SUM(zahl) as baumAnzahl, COUNT(zahl) anzahlEintraege FROM sometable GROUP BY baum;
SELECT farbe,
, COUNT(zahl) -- zählt die Anzahl der Sätze mit gleicher Farbe
, MAX(zahl) -- Maximalwert der Spalte "zahl" für alle Sätze der gleichen Farbe
, MIN(zahl) -- Minimalwert der Spalte "zahl" für alle Sätze der gleichen Farbe
, SUM(zahl) -- Summe der Werte aus "zahl" für alle Sätze der gleichen Farbe
, AVG(zahl) -- Durchschnittswert der Werte aus "zahl" für alle Sätze der gleichen Farbe
FROM tabelle
GROUP BY farbe
farbe | count | max | min | sum | avg |
rot | 1 | 1 | 1 | 1 | 1 |
grün | 2 | 2 | 1 | 3 | 1.5 |
Titel | Forum | Antworten | Datum | |
---|---|---|---|---|
O | Relationale Algebra Gruppierungen | Datenbankprogrammierung | 2 |