Menu
Coddy logo textTech

Subqueries Part 1

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

Unterabfragen ermöglichen es uns, mehrere Abfragen zu einer zu kombinieren. Zum Beispiel betrachten Sie die folgende <strong>employees</strong>-Tabelle:

IDGehalt
148
234
346
413
528

Wir benötigen eine Unterabfrage, weil wir WHERE salary > AVG(salary) nicht direkt verwenden können, da Aggregatfunktionen wie AVG() nicht in einer WHERE-Klausel verwendet werden können – sie können nur verwendet werden, nachdem die Daten gruppiert wurden.

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

Eine Unterabfrage hilft uns, Mitarbeiter zu finden, die mehr verdienen als das durchschnittliche Gehalt des Unternehmens, indem sie zuerst den Durchschnitt berechnet (innere Abfrage) und dann diesen Wert verwendet, um Mitarbeiter zu filtern (äußere Abfrage).

Da der Durchschnitt (48 + 34 + 46 + 13 + 28) / 5 = 33.8 beträgt, ist dies das Ergebnis der Abfrage:

IDGehalt
148
234
346
challenge icon

Aufgabe

Einfach

Verfügbare Tabellen und Spalten:

  • <strong>shop</strong>: <strong>price</strong>, <strong>quantity</strong>, <strong>category</strong>, <strong>list_date</strong>

Schreibe eine Abfrage, um alle Artikel zu finden (alle Spalten auswählen), deren Preis höher ist als der Durchschnittspreis aller Artikel.

Verwende eine Unterabfrage in der WHERE-Klausel, um den Durchschnittspreis zu berechnen, und vergleiche dann den Preis jedes Artikels mit diesem Durchschnitt.

Spickzettel

Subqueries ermöglichen das Kombinieren mehrerer Abfragen zu einer. Sie sind nützlich, wenn Sie Aggregatfunktionen wie AVG() nicht direkt in einer WHERE-Klausel verwenden können.

Grundlegende Subquery-Syntax:

SELECT column1, column2
FROM table_name
WHERE column1 > (
    SELECT AVG(column1)
    FROM table_name
);

Die Subquery (innere Abfrage) wird zuerst ausgeführt, um den Durchschnitt zu berechnen, dann verwendet die äußere Abfrage dieses Ergebnis, um die Daten zu filtern.

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