Eine Zahl für jeden Kurs
Die Schule hängt eine Liste aus: Wie viele Lernende sind in jedem Kurs? Informatik, Musik, Fußball und Theater.
Du kannst die Anmeldungen für einen Kurs zählen. Aber vier Kurse bedeuten vier Abfragen.
Besser ist eine Abfrage, die für jeden Kurs eine Zeile liefert.
Am Ende dieser Lektion
Notiz
Ich kann mit GROUP BY eine Zahl für jede Gruppe einer Tabelle berechnen.
Schlüsselwörter
| Begriff | Was er bedeutet | Beispiel |
|---|---|---|
| GROUP BY | Sammelt Zeilen in Gruppen, eine Gruppe pro Wert. | GROUP BY kurs_id |
| Gruppe | Alle Zeilen mit demselben Wert in einer Spalte. | |
| Funktion | Rechnet für jede Gruppe ein Ergebnis aus. | COUNT(*) |
| HAVING | Behält nur die Gruppen, die eine Bedingung erfüllen. | HAVING COUNT(*) >= 4 |
| WHERE | Behält nur die Zeilen, die eine Bedingung erfüllen. |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Starter: Was du schon weißt
Probier es aus
Starter: Was du schon weißt
4 FragenDeine Antworten werden hier bewertet und nicht gespeichert. Mit einem Konto bleiben deine Ergebnisse erhalten.
GROUP BY macht einen Stapel pro Wert
Stell dir 14 Anmeldekarten vor. Du legst sie in Stapel, einen Stapel pro Kurs.
Genau das macht GROUP BY kurs_id. Danach rechnet die Funktion für jeden Stapel einzeln.
Du bekommst eine Ergebniszeile pro Stapel.
Zähle pro Kurs und pro Klasse
-- GROUP BY macht einen Stapel pro Kurs.
-- COUNT(*) zählt die Zeilen in jedem Stapel.
SELECT kurs_id, COUNT(*) AS anzahl
FROM anmeldungen
GROUP BY kurs_id;
-- Ändere kurs_id in klasse und FROM anmeldungen in FROM schueler.
-- Dann zählst du die Lernenden pro Klasse.
Beispiel: die vier Stapel
| kurs_id | Noten im Stapel | Anzahl |
|---|---|---|
| 1 (Informatik) | 1, 3, 2, 3, 2 | 5 |
| 2 (Musik) | 2, 1, 3 | 3 |
| 3 (Fußball) | 2, 4, leer, 1 | 4 |
| 4 (Theater) | leer, 2 | 2 |
Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.
Prüfe dich: Stapel
Probier es aus
Prüfe dich: Stapel
3 FragenDeine Antworten werden hier bewertet und nicht gespeichert. Mit einem Konto bleiben deine Ergebnisse erhalten.