Unterabfragen Teil 2
Teil des Abschnitts Grundlagen der SQL-Journey von Coddy. Lektion 39 von 72.
Es gibt drei Haupttypen von Unterabfragen:
- Skalare Unterabfragen – Gibt einen einzelnen Wert zurück (eine Zeile, eine Spalte)
- Zeilenunterabfragen – Gibt eine einzelne Zeile mit mehreren Spalten zurück
- 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
Aufgabe
EinfachVerfü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:
- Schreibe zuerst eine Unterabfrage, die den Durchschnitt von allen Mengen in
shopberechnet:SELECT AVG(quantity) FROM shop - Addiere dann für jede Kategorie ihre Mengen und vergleiche sie mithilfe des Schlüsselworts
HAVINGmit dieser Unterabfrage
Probier es selbst
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Weitere Schlüsselwörter
Das IN-SchlüsselwortDas BETWEEN-SchlüsselwortDas LIKE-SchlüsselwortDas AS-SchlüsselwortRückblick – Handymodelle7Datumsangaben
Datumsangaben behandeln – Teil 1Datumsangaben behandeln – Teil 2Datumsangaben behandeln – Teil 32Bedingungen
Grundlagen der BedingungenDas Schlüsselwort ANDDas Schlüsselwort ORDas Schlüsselwort NOTMehrere kombinierte BedingungenKlammernBoolesche Werte5Arithmetische Operationen
Mathematische OperatorenMathematische SpaltenDie Modulo-OperationDie ROUND()-Funktion3Spezifisches Rückgabeformat
NULL-WerteErgebnisse sortieren Teil 1Ergebnisse sortieren Teil 2Zusammenfassung - Cyber Security FirmAnzahl der Datensätze begrenzenZusammenfassung - Vehicle Factory6Einführungsaufgaben
Wiederholung – ParlamentswahlWiederholung – Festnahme eines Straftäters durch die PolizeiWiederholung – Getränkebehälter an der BarWiederholung – Neue Spalten erstellenÜbe selbstständig: SQL-Playground