MAX()
Aggregatfunktionen
MAX() liefert den größten Wert einer Spalte – das Gegenstück zu MIN(). Bei Zahlen der höchste Betrag, bei Datumsangaben das späteste Datum, bei Text der alphabetisch letzte Wert. Typische Frage: „Welcher Kunde hat den höchsten Umsatz?“.
Syntax
SELECT MAX(Spalte) FROM Tabelle;
Beispiel: Höchster Umsatz
SELECT MAX(Umsatz) AS Spitzenumsatz FROM Kunden;
| Spitzenumsatz |
|---|
| 98000 |
Beispiel: spätestes Datum
SELECT MAX(Bestelldatum) AS LetzteBestellung FROM Bestellungen;
Beispiel: MAX pro Gruppe
Mit GROUP BY erhältst du das Maximum je Gruppe – z. B. den teuersten Artikel pro Kategorie:
SELECT Kategorie, MAX(Preis) AS Teuerstes FROM Produkte GROUP BY Kategorie;
| Kategorie | Teuerstes |
|---|---|
| Büro | 25 |
| Technik | 120 |
Kombiniert mit anderen Aggregaten
MAX() lässt sich frei mit den anderen Aggregatfunktionen mischen:
SELECT MIN(Preis) AS Von, MAX(Preis) AS Bis FROM Produkte;
Stolperfalle
Wie bei MIN() gilt: SELECT MAX(Umsatz), Name FROM Kunden verrät dir nicht den Namen des umsatzstärksten Kunden – das Maximum gehört zu keiner bestimmten Zeile. Für die ganze Zeile nutze Sortierung mit Begrenzung oder eine Unterabfrage:
SELECT Name, Umsatz FROM Kunden WHERE Umsatz = (SELECT MAX(Umsatz) FROM Kunden);
Diese Variante liefert übrigens bei Gleichstand alle Spitzenreiter. MAX() ignoriert NULL und gibt bei leerer Tabelle NULL zurück.
Was liefert MAX(Bestelldatum) bei einer Datumsspalte?