Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Zeilen sortieren, zählen und gruppieren

Nach dieser Lektion: Ich kann Zeilen in Gruppen zählen und addieren.

Lektion, 45 Min.Keine Befehle

Wo wird am meisten bestellt?

Im Montagsmeeting von Nordwind Rad fragt die Geschäftsführung: In welcher Stadt kaufen die meisten Kundinnen und Kunden? Und wie viel Umsatz bringt jede Stadt?

Eine Liste mit sieben Bestellungen können Sie noch im Kopf rechnen. Bei 70.000 Bestellungen nicht mehr. Die Datenbank sortiert, zählt und addiert für Sie.

Am Ende dieser Lektion

Notiz

Ich kann Zeilen in Gruppen zählen und addieren.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
ORDER BYsortiert das Ergebnis nach einer Spalte
COUNTzählt ZeilenCOUNT(*)
SUMaddiert die Werte einer SpalteSUM(betrag)
GROUP BYbildet eine Gruppe pro Wert einer Spalte
Aliasein Name für eine berechnete SpalteAS summe

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

ORDER BY sortiert das Ergebnis

Ohne Angabe liefert die Datenbank die Zeilen in beliebiger Reihenfolge. Mit ORDER BY betrag sortiert sie nach der Spalte betrag, aufsteigend.

Mit DESC dahinter geht es absteigend, die größte Zahl steht oben. LIMIT 3 schneidet nach drei Zeilen ab. So finden Sie schnell die größten oder kleinsten Einträge.

Probieren Sie es: sortieren

Code: sql
-- Die größten Bestellungen zuerst.
SELECT id, kunde, betrag FROM bestellungen
ORDER BY betrag DESC;

-- Nur die drei kleinsten Bestellungen.
SELECT id, kunde, betrag FROM bestellungen
ORDER BY betrag
LIMIT 3;

COUNT zählt, SUM addiert

Manchmal wollen Sie keine Zeilen sehen, sondern eine Zahl. COUNT(*) zählt die Zeilen. SUM(betrag) addiert alle Werte der Spalte betrag.

Mit AS geben Sie dem Ergebnis einen lesbaren Namen. Ein WHERE davor wirkt zuerst: Es zählt und addiert nur die Zeilen, die übrig bleiben.

Ein Beispiel Schritt für Schritt: bezahlte Bestellungen

BestellungbetragBezahlt?Laufende Summe
223Ja23
3150Ja173
5210Ja383
762Ja445

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Probieren Sie es: zählen und addieren

Code: sql
-- Wie viele Bestellungen gibt es, und wie viel Umsatz?
SELECT COUNT(*) AS anzahl, SUM(betrag) AS summe
FROM bestellungen;

-- Dasselbe nur für bezahlte Bestellungen.
SELECT COUNT(*) AS anzahl, SUM(betrag) AS summe
FROM bestellungen
WHERE status = 'bezahlt';

GROUP BY rechnet für jede Gruppe einzeln

Die Geschäftsführung will keine Gesamtzahl, sondern eine Zahl je Stadt. Dafür schreiben Sie GROUP BY stadt.

Die Datenbank bildet eine Gruppe für jede Stadt. Dann wendet sie COUNT und SUM auf jede Gruppe einzeln an. Das Ergebnis hat eine Zeile pro Stadt.

Ein Beispiel Schritt für Schritt: GROUP BY stadt

stadtBestellungen in der Gruppeanzahlsumme
Bremen2 und 52233
Hamburg1, 3 und 63251
Kiel4139
Lübeck7162

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Probieren Sie es: eine Zeile pro Stadt

Code: sql
-- Anzahl und Summe je Stadt.
SELECT stadt, COUNT(*) AS anzahl, SUM(betrag) AS summe
FROM bestellungen
GROUP BY stadt;

-- Dieselbe Abfrage, die größte Summe zuerst.
SELECT stadt, COUNT(*) AS anzahl, SUM(betrag) AS summe
FROM bestellungen
GROUP BY stadt
ORDER BY summe DESC;

Ein häufiger Fehler

Warnung

Viele glauben, WHERE könne auch die fertigen Gruppen prüfen. Das stimmt nicht. WHERE arbeitet vor dem Gruppieren und wählt nur Zeilen. Wollen Sie nur bezahlte Bestellungen je Stadt, steht WHERE vor GROUP BY.

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.