SQL-Dojo · Unterabfragen

Skalare Subquery: Vergleich mit einem Aggregat

Übungsaufgabe aus der Lernplattform: Aufgabenstellung hier lesen, Lösung dort schreiben und automatisch prüfen lassen.

Leicht , Schwierigkeit 2 von 5 ca. 10 Minuten 15 XP Track: Unterabfragen

Das ist die erste Challenge im Subquery-Track. Bevor du die Aufgabe löst, solltest du verstehen, was eine Subquery überhaupt ist und wofür man sie braucht. Danach geht es um den einfachsten Fall: die skalare Subquery.

Bisher standen in deinen WHERE-Bedingungen immer feste Werte: ein Preis, ein Datum, ein Name. Der Vergleichswert war dir vorher bekannt. Es gibt aber eine ganze Klasse von Fragen, bei denen das nicht funktioniert, weil der Vergleichswert erst aus den Daten selbst entsteht: Wer verdient überdurchschnittlich? Welche Bestellung liegt über dem Mittelwert? Welches Produkt ist teurer als das billigste im Sortiment?

Solche Werte kannst du nicht hart in die Abfrage tippen. Sie ändern sich mit jedem neuen Datensatz, und beim nächsten Ausführen wäre die Zahl schon veraltet. Genau diese Lücke schließt die Subquery — und weil sie die Grundlage für alles Weitere in diesem Track ist, nimm dir für die folgenden Abschnitte Zeit.

Das steckt in der vollständigen Aufgabe

  1. Die Grundidee: Frage in der Frage
  2. Was ist eine "skalare" Subquery?
  3. Verlauf der Auswertung
  4. Die Tabelle
  5. Deine Aufgabe

Die vollständige Aufgabenstellung mit Beispieldaten, Hinweisen und erklärter Musterlösung steht in der Lernplattform.

Lernplattform

Schreib die Lösung, wir prüfen sie.

In der Lernplattform arbeitest du direkt im Browser. Deine Lösung wird automatisch geprüft, mit Hinweisen bei Fehlern und einer erklärten Musterlösung.

Diese Aufgabe lösen

Weitere Aufgaben aus Unterabfragen

Alle Aufgaben
  1. WHERE IN mit Subquery Aus dem Grundlagen-Track kennst du IN mit einer festen Liste: Die Liste kann aber auch aus einer anderen Tabelle kommen. Dafür ersetzt du die Liste durch eine Subquery, die eine Spalte mit Werten l... Leicht , Schwierigkeit 2 von 5 ca. 10 Minuten
  2. WHERE NOT IN: wer fehlt? Das Gegenstück zu IN: alle Werte, die nicht in der Subquery-Liste vorkommen. Typische Aufgabe: "Finde alle Kunden ohne Projekt". Die Liste "Kunden mit Projekt" liefert eine Subquery, und NOT IN dre... Mittel , Schwierigkeit 3 von 5 ca. 8 Minuten
  3. WHERE EXISTS: gibt es mindestens eine passende Zeile? EXISTS (subquery) ist ein Existenz-Test: Es liefert TRUE, wenn die Subquery mindestens eine Zeile findet, sonst FALSE. Im Gegensatz zu IN interessiert sich EXISTS nicht für konkrete Werte, sondern ... Mittel , Schwierigkeit 3 von 5 ca. 10 Minuten
  4. WHERE NOT EXISTS Die Umkehrung von EXISTS: liefert TRUE, wenn die korrelierte Subquery keine Zeile findet. Gedankengang: "Für diesen Mitarbeiter gibt es keinen Eintrag in der Zuordnungstabelle." Damit hast du am En... Mittel , Schwierigkeit 3 von 5 ca. 8 Minuten

Zurück zur Übersicht Unterabfragen