Unterabfragen in SELECT für Berechnungen
Unterabfragen in SELECT
sind eine nützliche Methode, um berechnete Spalten in einer Abfrage zu erstellen. Eine Unterabfrage in SELECT
kann als ein einzelner numerischer Wert behandelt werden, der in deinen Berechnungen verwendet wird. Wenn du Abfragen in SELECT
schreibst, denke unbedingt daran, dass das Filtern der Hauptabfrage nicht die Unterabfrage filtert – und umgekehrt.
In der vorherigen Übung hast du eine Spalte erstellt, um die durchschnittlichen Gesamttore der einzelnen Ligen mit den durchschnittlichen Gesamttoren der Saison 2013/2014 zu vergleichen. In dieser Übung fügst du eine Spalte hinzu, die diese Werte direkt vergleicht, indem du den Gesamtdurchschnitt von der Unterabfrage abziehst.
Diese Übung ist Teil des Kurses
Datenmanipulation in SQL
Anleitung zur Übung
- Wähle in der Hauptabfrage die durchschnittlich pro Spiel erzielten Tore für jede Liga aus.
- Wähle in der Unterabfrage die durchschnittlich pro Spiel erzielten Tore in der Saison 2013/2014 insgesamt aus.
- Ziehe die Unterabfrage von der für jede Liga berechneten durchschnittlichen Anzahl der Tore ab.
- Filtere die Hauptabfrage so, dass nur Spiele aus der Saison 2013/2014 enthalten sind.
Interaktive Übung zum Anfassen
Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.
SELECT
-- Select the league name and average goals scored
___ AS league,
ROUND(___(___ + m.away_goal),2) AS avg_goals,
-- Subtract the overall average from the league average
ROUND(AVG(___ + m.away_goal) ___
(SELECT ___(___ + away_goal)
FROM match
WHERE ___ = ___),2) AS diff
FROM league AS l
LEFT JOIN match AS m
ON l.country_id = m.country_id
-- Only include 2013/2014 results
WHERE ___ = ___
GROUP BY l.name;