SQL — JOINs & Mengen · Lösungen
Bezieht sich auf SQL - JOINs & Mengen. Jede Aufgabe hier ist ausführbar — direkt im eingebetteten SQL-Konsolen-Block ausprobieren.
Der einfache JOIN
Aufgabe 1 — Homers Belegungen
Aufgabe 2 — Kursangebot alphabetisch (ohne Dopplungen)
Aufgabe 3 — Lehrer mit 'H' oder 'N', LK
Aufgabe 4 — Notendurchschnitt pro Schüler
Aufgabe 5 — Abiturprüfungen-Durchschnitt (Fach × Pruefung)
Aufgabe 6 — Neukölln-Schüler mit Tutor
Mehrfache JOINs
Aufgabe 1 — Notendurchschnitt pro Lehrer
Aufgabe 2 — 15 im LK (mit Fach)
Aufgabe 3 — Anzahl Kurse mit 15 Punkten pro Schüler
Aufgabe 4 — Streichresultate mit Schülername und Fach
LEFT JOIN
Aufgabe 1 — Fächer ohne LK
Aufgabe 2 — Alle Lehrer + Anzahl Kurse
Aufgabe 3 — Alle Schüler + Anzahl nicht bestandener Abiturprüfungen (Note < 5)
Aufgabe 4 — Schüler ohne 15 (LEFT JOIN + IS NULL)
Self-JOIN
Aufgabe 1 — Belegungspaare mit gleicher Note im selben Kurs
Aufgabe 2 — Schüler-Paare mit gleichem Tutor und gleichem Bezirk
Aufgabe 3 — Kurs-Paare gleicher Lehrer, gleiches Semester
Bedingte Logik mit CASE WHEN
Aufgabe 1 — Spalte „Bestanden"
Aufgabe 2 — Notenstufen pro Schüler
Aufgabe 3 — Neukölln zuerst, danach alphabetisch
Aufgabe 4 — LK/GK-Anzahl pro Lehrer
Mengenoperationen: UNION, INTERSECT, EXCEPT
Aufgabe 1 — Doppelt stark: 15 in Kurs ∩ 15 im Abi
Aufgabe 2 — Klassenkanone, Prüfungsflop
Aufgabe 3 — Risiko-Schüler (Note < 5 irgendwo)
Aufgabe 4 — Notenkonto Lukas Müller (S_ID = 1)
Warum nicht UNION? UNION würde gleiche Notenwerte zusammenfassen — z. B. erschiene eine 13 nur einmal, selbst wenn Lukas drei Belegungen mit 13 und eine Abiturnote 13 hat. Für eine vollständige Notenliste muss UNION ALL benutzt werden.
Aufgabe 5 — Durchgezogene Fächer von Lukas Müller (Q1 ∩ Q4)
In der Berliner Oberstufe laufen LKs über alle vier Semester. Wer ein Fach in Q1 und Q4 belegt hat, hat es entweder als LK gewählt oder konsequent durchgezogen — kurzfristig abgewählte Fächer fehlen in Q4 und fallen durch INTERSECT raus.