Problem:
Sie möchten den Maximalwert einer numerischen Spalte finden.
Beispiel:
Unsere Datenbank hat eine Tabelle namens product
mit Daten in den folgenden Spalten:id
, name
, year
und items
.
id | Name | Jahr | Artikel |
---|---|---|---|
1 | Brötchen | 2018 | 345 |
2 | Schokolade | 2017 | 123 |
3 | Butter | 2019 | 34 |
4 | Brötchen | 2019 | 456 |
5 | Butter | 2018 | 56 |
6 | Butter | 2017 | 78 |
7 | Schokolade | 2019 | 87 |
8 | Schokolade | 2018 | 76 |
Lassen Sie uns die maximale Anzahl der verkauften Artikel über alle Jahre ermitteln.
Lösung:
SELECT MAX(items) as max_items FROM product;
Hier ist das Ergebnis:
max_items |
---|
456 |
Diskussion:
Um den maximalen Wert einer Spalte zu finden, verwenden Sie MAX()
Aggregatfunktion; als Argument nimmt es den Namen der Spalte, für die Sie den Maximalwert finden möchten. Wenn Sie keine anderen Spalten in der SELECT
angegeben haben -Klausel wird das Maximum für alle Datensätze in der Tabelle berechnet. In unserem Beispiel gibt die Abfrage die maximale Anzahl aller Elemente zurück.
Da es sich um eine Aggregatfunktion handelt, ist natürlich MAX()
kann auch mit Gruppen verwendet werden. Wenn wir beispielsweise die maximale Anzahl der in jedem Jahr verkauften Artikel sehen möchten, können wir diese Abfrage schreiben:
SELECT year, MAX(items) AS max_items FROM product GROUP BY year;
Das Maximum wird für jede Gruppe berechnet:
Jahr | max_items |
---|---|
2018 | 345 |
2017 | 123 |
2019 | 456 |