Der kleinste und der größte Wert
MIN(spalte) findet den kleinsten Wert einer Spalte, MAX(spalte) den größten. Das billigste und das teuerste Spiel:
SELECT MIN(preis) AS guenstigstes,
MAX(preis) AS teuerstes
FROM spiele;| guenstigstes | teuerstes |
|---|---|
| 5 | 60 |
Sie funktionieren auch mit Text und Datumsangaben. Bei Text ist der kleinste Wert der erste in alphabetischer Reihenfolge und der größte der letzte, in derselben Reihenfolge, in der ORDER BY sortiert. Als 'YYYY-MM-DD' geschriebene Datumsangaben sortieren sich wie Datumsangaben, also findet MIN das früheste und MAX das späteste:
SELECT MIN(stadt) AS erste_stadt,
MAX(stadt) AS letzte_stadt,
MIN(beigetreten) AS erster_beitritt,
MAX(beigetreten) AS letzter_beitritt
FROM kunden;| erste_stadt | letzte_stadt | erster_beitritt | letzter_beitritt |
|---|---|---|---|
| Berlin | Leipzig | 2023-01-15 | 2025-10-03 |
Beachte, dass die erste Stadt nicht NULL ist, obwohl ORDER BY stadt NULL an den Anfang stellt. Wie die anderen Aggregatfunktionen überspringen MIN und MAX den Wert NULL.
Wie du siehst, kann eine Abfrage mehrere Aggregatfunktionen haben, und verschiedene. Sie arbeiten alle mit denselben Zeilen, nämlich denen, die WHERE übrig gelassen hat. Eine kurze Zusammenfassung der Action-Spiele:
SELECT COUNT(*) AS anzahl_spiele,
MIN(preis) AS guenstigstes,
MAX(preis) AS teuerstes,
ROUND(AVG(preis), 1) AS durchschnittspreis
FROM spiele
WHERE genre = 'Action';| anzahl_spiele | guenstigstes | teuerstes | durchschnittspreis |
|---|---|---|---|
| 4 | 25 | 40 | 32.5 |
Typischer Fehler: Du willst den Titel des billigsten Spiels und schreibst SELECT titel, MIN(preis) FROM spiele;. In SQLite funktioniert das zufällig: Bei MIN und MAX nimmt es die anderen Spalten aus der Zeile mit dem kleinsten oder dem größten Wert, hier Cube Logic. Aber andere Datenbanken melden einen Fehler, und wenn zwei Spiele den niedrigsten Preis teilen, zeigt SQLite nur eines von ihnen. Benutze stattdessen, was du aus Lektion 2 kennst, ORDER BY preis LIMIT 1, und zeige ein paar Zeilen mehr, um zu sehen, ob ein anderes Spiel dasselbe kostet.
So schreibst du es:
Anweisungen
- 1
Zeige das Datum der ersten und der letzten Bestellung in den Spalten
erste_bestellungundletzte_bestellung:erste_bestellung letzte_bestellung 2024-01-20 2025-12-22 - 2
Fasse darunter die Bewertungen von Dragon Forge (
spiel_id1) zusammen: ihre Anzahl, die wenigsten und die meisten Sterne und die durchschnittlichen Sterne, auf 2 Nachkommastellen gerundet, in den Spaltenanzahl_bewertungen,wenigste_sterne,meiste_sterneunddurchschnitt_sterne:anzahl_bewertungen wenigste_sterne meiste_sterne durchschnitt_sterne 4 3 5 4.25 - 3
Und zeige aus
spieleden Titel, der in alphabetischer Reihenfolge zuerst kommt, und den, der zuletzt kommt, in den Spaltenerster_titelundletzter_titel:erster_titel letzter_titel Bakery Story Zombie Town