SQL-Unterabfragen einfach erklärt: So nutzt du Subqueries richtig

Was sind SQL-Unterabfragen (Subqueries)?

SQL-Unterabfragen – auch Subqueries genannt – sind Abfragen innerhalb einer Abfrage. Sie ermöglichen es dir, komplexe Datenabfragen elegant zu strukturieren, ohne dabei mehrere einzelne SQL-Statements schreiben zu müssen.

Ein einfaches Beispiel:

SELECT Name
FROM Kunden
WHERE Umsatz > (
  SELECT AVG(Umsatz)
  FROM Kunden
);

Diese Abfrage zeigt dir alle Kundennamen, deren Umsatz über dem Durchschnitt liegt.

Die innere Abfrage berechnet den Durchschnittsumsatz, die äußere Abfrage filtert daraufhin alle Kunden mit höherem Umsatz.

Arten von SQL-Unterabfragen

Unterabfragen lassen sich auf verschiedene Arten einsetzen:

1. Im WHERE-Statement

Ideal, um Datensätze anhand eines berechneten Werts zu filtern.
Beispiel:

SELECT Produktname
FROM Produkte
WHERE Preis > (
  SELECT AVG(Preis)
  FROM Produkte
);

2. Im FROM-Statement (Inline View)

Hier wird die Unterabfrage wie eine temporäre Tabelle behandelt.

SELECT Kategorie, AVG(Preis) AS Durchschnittspreis
FROM (
  SELECT Kategorie, Preis
  FROM Produkte
) AS tmp
GROUP BY Kategorie;

3. Im SELECT-Statement

Unterabfragen können auch direkt Werte berechnen, z. B. zur Anzeige von Summen:

SELECT 
  Name, 
  (SELECT SUM(Betrag) FROM Bestellungen WHERE Kunden.ID = Bestellungen.KundenID) AS Gesamtbetrag
FROM Kunden;

Wann du Unterabfragen vermeiden solltest

Subqueries sind mächtig – aber nicht immer optimal. Bei großen Datenmengen kann ihre Nutzung Performance-Probleme verursachen. In solchen Fällen ist ein JOIN meist effizienter, da die Datenbank den Zusammenhang besser optimieren kann.

Beispiel – statt:

SELECT Name FROM Kunden WHERE ID IN (SELECT KundenID FROM Bestellungen);

besser:

SELECT DISTINCT Kunden.Name
FROM Kunden
JOIN Bestellungen ON Kunden.ID = Bestellungen.KundenID;

Tipp: SQL-Unterabfragen üben

Der beste Weg, Subqueries zu verstehen, ist das praktische Üben. Nutze Online-Tools wie learnsql.de oder baue eigene Übungsdatenbanken auf, um Abfragen Schritt für Schritt zu testen.

Wenn du bereits mit JOINs, GROUP BY und Aggregatfunktionen arbeitest, wirst du schnell erkennen, wie Unterabfragen deine SQL-Skripte übersichtlicher und flexibler machen.

Weiterführende Themen

Fazit

SQL-Unterabfragen sind ein unverzichtbares Werkzeug, wenn du komplexe Datenanalysen effizient umsetzen möchtest. Sie machen Abfragen lesbarer, modularer und oft auch wartungsfreundlicher – solange du ihre Grenzen kennst.

📬 Du hast individuelle Fragen zu SQL oder möchtest lernen, wie du deine Datenbankabfragen optimierst?
Dann werde Mitglied auf meinem YouTube-Kanal – dort helfe ich dir persönlich weiter:
👉 https://www.youtube.com/@datenanalyst

📈 Weitere SQL-Tutorials und praxisnahe Datenanalyse-Tipps findest du auf:
👉 https://www.datenanalyst.com