it-praxisportal/courses/sql/10_subqueries_und_mengenoperationen
2026-08-30 13:10:38 +02:00
..
aufgabe.sql Vollständige Umsetzung von Phase A bis C: (1) SQL & Data Analytics Master (16 Module), (2) HTML5 & Modern CSS3 (16 Module) und (3) Go Cloud Microservices (16 Module). Plattform umfasst nun 131 Module über 7 Sprachen 2026-08-30 13:10:38 +02:00
index.html Vollständige Umsetzung von Phase A bis C: (1) SQL & Data Analytics Master (16 Module), (2) HTML5 & Modern CSS3 (16 Module) und (3) Go Cloud Microservices (16 Module). Plattform umfasst nun 131 Module über 7 Sprachen 2026-08-30 13:10:38 +02:00
musterloesung.sql Vollständige Umsetzung von Phase A bis C: (1) SQL & Data Analytics Master (16 Module), (2) HTML5 & Modern CSS3 (16 Module) und (3) Go Cloud Microservices (16 Module). Plattform umfasst nun 131 Module über 7 Sprachen 2026-08-30 13:10:38 +02:00
README.md Vollständige Umsetzung von Phase A bis C: (1) SQL & Data Analytics Master (16 Module), (2) HTML5 & Modern CSS3 (16 Module) und (3) Go Cloud Microservices (16 Module). Plattform umfasst nun 131 Module über 7 Sprachen 2026-08-30 13:10:38 +02:00
test_aufgabe.sql Vollständige Umsetzung von Phase A bis C: (1) SQL & Data Analytics Master (16 Module), (2) HTML5 & Modern CSS3 (16 Module) und (3) Go Cloud Microservices (16 Module). Plattform umfasst nun 131 Module über 7 Sprachen 2026-08-30 13:10:38 +02:00

SQL 10: Subqueries & Mengenoperationen 🔍🔀

Willkommen zu Modul 10 (Lehrpfad 3: Aggregationen, CTEs & Window Functions)! In diesem Modul lernst du, wie du komplexe Geschäftslogik mit verschachtelten Unterabfragen (Subqueries) und mengentheoretischen Operatoren elegant und performant löst.


🎯 Lernziele

  1. Skalare Subqueries: Nutzen von Unterabfragen in SELECT und WHERE, die genau einen Einzelwert (z.B. Durchschnitt) zurückliefern.
  2. Korrelierte Subqueries & EXISTS: Zeilenweise Verknüpfung äußerer Tabellen mit Subqueries (EXISTS / NOT EXISTS) für performante Filterung.
  3. Mengenoperationen: Vereinigen von Datensätzen mit UNION (Deduplizierung) und UNION ALL (maximale Performance).
  4. Schnitt- & Differenzmengen: Finden von gemeinsamen Kunden (INTERSECT) und Ausschlussmengen (EXCEPT).

💡 Kernkonzepte

1. IN vs. EXISTS

  • IN: Evaluiert die gesamte Subquery zu einer Wertemenge. Bei großen Datenmengen oder NULL-Werten kann NOT IN unerwartete Ergebnisse liefern.
  • EXISTS: Prüft nur auf die Existenz mindestens einer Zeile und bricht die Suche sofort nach dem ersten Treffer ab (Short-Circuiting). Das ist in den meisten Fällen deutlich performanter.
-- Finde Kunden mit mindestens einer Bestellung
SELECT k.id, k.name 
FROM kunden k
WHERE EXISTS (
    SELECT 1 FROM bestellungen b 
    WHERE b.kunde_id = k.id
);

2. Die vier Mengenoperatoren im Überblick

Operator Duplikate Wirkung
UNION Werden entfernt Vereinigung aller disjunkten Zeilen beider Abfragen
UNION ALL Bleiben erhalten Schnelles Aneinanderhängen beider Ergebnismengen
INTERSECT Werden entfernt Nur Zeilen, die in beiden Mengen vorkommen
EXCEPT Werden entfernt Zeilen aus Menge A, die NICHT in Menge B vorkommen

🚀 Aufgabenstellung (aufgabe.sql)

  1. TODO 1: Skalare Subquery & Preisabweichung – Finde Produkte über dem Durchschnittspreis und berechne die Differenz zum Mittelwert.
  2. TODO 2: Korrelierte Subquery mit NOT EXISTS – Identifiziere loyale Kunden (Kauf online vorhanden, aber noch nie eine Retoure eingereicht).
  3. TODO 3: Multi-Channel Konsolidierung – Vereinige Online- und Filialumsätze mit UNION ALL.
  4. TODO 4: Omnichannel vs. Pure-Online Analyse – Berechne mit INTERSECT Kunden, die beide Kanäle nutzen, und mit EXCEPT reine Online-Käufer.

🧪 Tests ausführen

Validierung erfolgt über test_aufgabe.sql in der Web-IDE oder lokal per SQLite.