Subqueries Part 2
Teil des Abschnitts Grundlagen der SQL-Journey von Coddy — Lektion 39 von 72.
Es gibt drei Hauptarten von Subqueries:
- Skalare Unterabfragen – Liefert einen einzelnen Wert zurück (eine Zeile, eine Spalte)
- Zeilen-Unterabfragen – Liefert eine einzelne Zeile mit mehreren Spalten zurück
- Tabellen-Unterabfragen – Liefert mehrere Zeilen und Spalten zurück
Hier sind zum Beispiel einige Anwendungsfälle für jeden Subquery-Typ:
Skalare Subquery - Finden Sie Mitarbeiter, die mehr als das durchschnittliche Gehalt verdienen:
SELECT name, salary
FROM employees
WHERE salary > (
SELECT AVG(salary)
FROM employees
);Zeilen-Unterabfrage - Finde Mitarbeiter mit demselben department und salary wie Alice
SELECT name
FROM employees
WHERE (department, salary) = (
SELECT department, salary
FROM employees
WHERE name = 'Alice'
);Tabellen-Subqueries - Abteilungen und deren Mitarbeiteranzahl anzeigen
SELECT department, count
FROM (
SELECT department, COUNT(*) as count
FROM employees
GROUP BY department
) as dept_counts;Beachten Sie die Anwendungsfälle:
- Skalar - Einfache Vergleiche (>, <, =)
- Wenn Sie nach mehreren Spalten filtern müssen
- Wenn Sie ein Abfrageergebnis abfragen müssen
Aufgabe
EinfachVerfügbare Tabellen und Spalten:
shop:price,quantity,category,list_date
Finde Kategorien, bei denen die Gesamtsumme ihrer quantity größer ist als der Durchschnitt aller quantity-Werte im shop.
Wichtig: Du musst eine Unterabfrage innerhalb der HAVING-Klausel verwenden, um den Durchschnitt zu berechnen. Verwende keinen fest kodierten Wert und keine separate Abfrage — die Unterabfrage sollte AVG(quantity) aus der Tabelle shop direkt innerhalb von HAVING berechnen.
Schritte zur Lösung:
- Schreibe zuerst eine Unterabfrage, die den Durchschnitt aller
quantity-Werte imshopberechnet:SELECT AVG(quantity) FROM shop - Summiere dann für jede
categorydiequantity-Werte und vergleiche sie mithilfe des SchlüsselwortsHAVINGmit 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
4More Keywords
The IN keywordThe BETWEEN keywordThe LIKE keywordThe AS keywordRecap - Cellphone Models2Conditions
Conditions BasicsThe AND keywordThe OR keywordThe NOT keywordMultiple Conditions CombinedParenthesisBooleans5Arithmetic Operations
Mathematical OperatorsMathematical ColumnsThe Modulo OperationThe ROUND() Function3Specific Return Format
Null valuesSort Results Part 1Sort Results Part 2Recap - Cyber Security FirmLimit number of recordsRecap - Vehicle Factory6Intro Challenges
Recap - Parliamentary ElectionRecap - Police Criminal ArrestRecap - Bar Beverage ContainerRecap - Engineer new columns