LoslegenKostenlos loslegen

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 beim Filtern der Hauptabfrage nicht die Unterabfrage gefiltert wird – 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/14 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

Datenbearbeitung in SQL

Kurs anzeigen

Anleitung zur Übung

  • Wähle in der Hauptabfrage die durchschnittlich pro Spiel geschossenen Tore für jede Liga aus.
  • Wähle in der Unterabfrage die durchschnittliche Anzahl der Tore aus, die in einem Spiel während der gesamten Saison '2013/2014' geschossen wurden.
  • Subtrahiere die Unterabfrage von der für jede Liga berechneten durchschnittlichen Anzahl der Tore.
  • Filter die Hauptabfrage so, dass nur Spiele aus der Saison '2013/2014' berücksichtigt werden.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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;
Code bearbeiten und ausführen