Kursinhalt
Fortgeschrittene SQL
Fortgeschrittene SQL
Verwendung von Inneren Unterabfragen im FROM-Abschnitt
Eine innere Unterabfrage erstellt eine Tabelle, mit der wir anschließend Operationen in der äußeren Abfrage durchführen.
Daraus können wir schließen, dass wir auch eine innere Abfrage innerhalb des FROM
-Abschnitts verwenden können, um etwas aus dieser Tabelle auszuwählen.
Betrachten wir ein Beispiel, bei dem wir mit employees
arbeiten müssen, deren salary
über einem bestimmten Wert liegt. Aber statt einer WHERE
-Klausel verwenden wir eine innere Abfrage:
SELECT * FROM ( SELECT * From employees WHERE salary >= 70000 ) AS high_salary_employees
Wir haben eine neue Tabelle mithilfe einer inneren Unterabfrage erstellt, mit der wir arbeiten und Informationen sammeln können.
Hinweis
Beachten Sie, dass es für eine solche Tabelle unerlässlich ist, ein Alias bereitzustellen.
Wann könnte dies nützlich sein?
Eine solche Abfrage ist sehr lesbar; manchmal kann sie eine WHERE
-Klausel ersetzen.
Zusätzlich, wenn Sie nicht mit der gesamten Tabelle sondern nur mit einem gefilterten Teil arbeiten müssen, kann eine innere Unterabfrage im FROM
-Abschnitt äußerst praktisch sein.
Swipe to start coding
Ihre Aufgabe besteht darin, den durchschnittlichen Haushalt (Spalte budget
) für alle leitenden Abteilungen aus der department
Tabelle zu ermitteln. Verwenden Sie eine innere Unterabfrage im FROM
-Abschnitt, um nur den Abteilungstyp 'manager' zu filtern. Verwenden Sie außerdem das Alias manager_departments
für diese Tabelle, damit die Aufgabe korrekt überprüft werden kann.
Die Antwort sollte nur eine Spalte haben, average_budget
. Dies ist ein Alias für die Aggregatfunktion AVG()
.
Hinweis
Diese Aufgabe könnte auch mithilfe einer
WHERE
-Klausel gelöst werden, aber wir verwenden hier eine verschachtelte Abfrage zur Übung dieser Syntax, die in Zukunft beim Lösen komplexerer Probleme nützlich sein wird.
Kurze Anweisungen
- Ermitteln Sie den Durchschnittswert der Spalte
budget
. - Weisen Sie dieser Spalte das Alias
average_budget
zu. - Im
FROM
-Abschnitt müssen Sie eine verschachtelte Abfrage schreiben. - Wählen Sie in der verschachtelten Abfrage alle Spalten aus der
department
Tabelle aus. - Verwenden Sie in der verschachtelten Abfrage die
WHERE
-Klausel mit der Bedingungtype = 'manager'
. - Weisen Sie der verschachtelten Abfrage das Alias
manager_departments
zu.
Lösung
Danke für Ihr Feedback!
Verwendung von Inneren Unterabfragen im FROM-Abschnitt
Eine innere Unterabfrage erstellt eine Tabelle, mit der wir anschließend Operationen in der äußeren Abfrage durchführen.
Daraus können wir schließen, dass wir auch eine innere Abfrage innerhalb des FROM
-Abschnitts verwenden können, um etwas aus dieser Tabelle auszuwählen.
Betrachten wir ein Beispiel, bei dem wir mit employees
arbeiten müssen, deren salary
über einem bestimmten Wert liegt. Aber statt einer WHERE
-Klausel verwenden wir eine innere Abfrage:
SELECT * FROM ( SELECT * From employees WHERE salary >= 70000 ) AS high_salary_employees
Wir haben eine neue Tabelle mithilfe einer inneren Unterabfrage erstellt, mit der wir arbeiten und Informationen sammeln können.
Hinweis
Beachten Sie, dass es für eine solche Tabelle unerlässlich ist, ein Alias bereitzustellen.
Wann könnte dies nützlich sein?
Eine solche Abfrage ist sehr lesbar; manchmal kann sie eine WHERE
-Klausel ersetzen.
Zusätzlich, wenn Sie nicht mit der gesamten Tabelle sondern nur mit einem gefilterten Teil arbeiten müssen, kann eine innere Unterabfrage im FROM
-Abschnitt äußerst praktisch sein.
Swipe to start coding
Ihre Aufgabe besteht darin, den durchschnittlichen Haushalt (Spalte budget
) für alle leitenden Abteilungen aus der department
Tabelle zu ermitteln. Verwenden Sie eine innere Unterabfrage im FROM
-Abschnitt, um nur den Abteilungstyp 'manager' zu filtern. Verwenden Sie außerdem das Alias manager_departments
für diese Tabelle, damit die Aufgabe korrekt überprüft werden kann.
Die Antwort sollte nur eine Spalte haben, average_budget
. Dies ist ein Alias für die Aggregatfunktion AVG()
.
Hinweis
Diese Aufgabe könnte auch mithilfe einer
WHERE
-Klausel gelöst werden, aber wir verwenden hier eine verschachtelte Abfrage zur Übung dieser Syntax, die in Zukunft beim Lösen komplexerer Probleme nützlich sein wird.
Kurze Anweisungen
- Ermitteln Sie den Durchschnittswert der Spalte
budget
. - Weisen Sie dieser Spalte das Alias
average_budget
zu. - Im
FROM
-Abschnitt müssen Sie eine verschachtelte Abfrage schreiben. - Wählen Sie in der verschachtelten Abfrage alle Spalten aus der
department
Tabelle aus. - Verwenden Sie in der verschachtelten Abfrage die
WHERE
-Klausel mit der Bedingungtype = 'manager'
. - Weisen Sie der verschachtelten Abfrage das Alias
manager_departments
zu.
Lösung
Danke für Ihr Feedback!