Aggregatfunktionen
Im Artikel über Gruppierungen haben wir erwähnt, dass wir bei GROUP BY Aggregatfunktionen verwenden können. Sprechen wir jetzt ausführlicher darüber 🐳.
Eine Aggregatfunktion ist eine Funktion, die eine Berechnung über eine Wertemenge ausführt und einen einzelnen Wert zurückgibt.
Allgemeine Struktur einer Query mit Aggregatfunktion
MySQL 8.1SELECT [Literale, Aggregatfunktionen, Gruppierungsfelder] FROM tabellen_name GROUP BY gruppierungsfelder;
So sieht zum Beispiel eine Query mit der Aggregatfunktion AVG aus:
MySQL 8.1SELECT home_type, AVG(price) as avg_price FROM Rooms GROUP BY home_type
Beschreibung der Aggregatfunktionen
Aggregatfunktionen berücksichtigen nur Werte, die ungleich NULL sind. Eine Ausnahme bildet COUNT(*).
Beispiele
-
Ermitteln wir die Anzahl jedes Unterkunftstyps und sortieren die Liste absteigend:
MySQL 8.1SELECT home_type, COUNT(*) as amount FROM Rooms GROUP BY home_type ORDER BY amount DESC -
Suchen wir für jede Unterkunft das späteste Abreisedatum (Feld end_date):
MySQL 8.1SELECT room_id, MAX(end_date) AS last_end_date FROM Reservations GROUP BY room_id