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 – Mitarbeiter finden, die mehr als das Durchschnittsgehalt verdienen:
SELECT name, salary
FROM employees
WHERE salary > (
SELECT AVG(salary)
FROM employees
);Zeilenunterabfrage – Mitarbeiter mit derselben Abteilung und demselben Gehalt wie Alice finden
SELECT name
FROM employees
WHERE (department, salary) = (
SELECT department, salary
FROM employees
WHERE name = 'Alice'
);Tabellenunterabfragen – 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 im Shop. Gib die category und die summierte Menge mit dem Namen total_quantity zurück.
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 zunächst eine Unterabfrage, die den Durchschnitt aller Mengen im Shop berechnet:
SELECT AVG(quantity) FROM shop - Summiere anschließend 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