Menu
Coddy logo textTech

Unterabfragen Teil 2

Teil des Abschnitts Grundlagen der SQL-Journey von Coddy. Lektion 39 von 72.

Es gibt drei Haupttypen von Unterabfragen:

  1. Skalare Unterabfragen – Gibt einen einzelnen Wert zurück (eine Zeile, eine Spalte)
  2. Zeilenunterabfragen – Gibt eine einzelne Zeile mit mehreren Spalten zurück
  3. Tabellenunterabfragen – Gibt mehrere Zeilen und Spalten zurück

Hier sind zum Beispiel einige Anwendungsfälle für jeden Unterabfragetyp:

Skalare Unterabfrage – Mitarbeitende finden, die mehr als das Durchschnittsgehalt verdienen:

SELECT name, salary
FROM employees
WHERE salary > (
    SELECT AVG(salary)
    FROM employees
);

Zeilenunterabfrage – Mitarbeiter finden, die dieselbe Abteilung und dasselbe Gehalt wie Alice haben

SELECT name
FROM employees
WHERE (department, salary) = (
    SELECT department, salary
    FROM employees
    WHERE name = 'Alice'
);

Tabellen-Unterabfragen – Abteilungen und ihre Mitarbeiteranzahl anzeigen

SELECT department, count
FROM (
    SELECT department, COUNT(*) as count
    FROM employees
    GROUP BY department
) as dept_counts;

Beachte die Anwendungsfälle:

  • Skalar – Einfache Vergleiche (>, <, =)
  • Wenn du mehrere Spalten abgleichen musst
  • Wenn du eine Ergebnismenge abfragen musst
challenge icon

Aufgabe

Einfach

Verfügbare Tabellen und Spalten:

  • shop: price, quantity, category, list_date

Finde Kategorien, deren Gesamtmenge größer ist als der Durchschnitt aller Mengen in shop.

Wichtig: Du musst eine Unterabfrage innerhalb der HAVING-Klausel verwenden, um den Durchschnitt zu berechnen. Verwende keinen fest codierten Wert und keine separate Abfrage: Die Unterabfrage soll AVG(quantity) direkt innerhalb von HAVING aus der Tabelle shop berechnen.

Schritte zur Lösung:

  1. Schreibe zuerst eine Unterabfrage, die den Durchschnitt von allen Mengen in shop berechnet: SELECT AVG(quantity) FROM shop
  2. Addiere dann für jede Kategorie ihre Mengen und vergleiche sie mithilfe des Schlüsselworts HAVING mit dieser Unterabfrage

Probier es selbst

quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen

Übe selbstständig: SQL-Playground