LoslegenKostenlos loslegen

CTEs mit verschachtelten Unterabfragen

Wenn du mehrere Unterabfragen in der FROM-Klausel mit verschachtelten Anweisungen auflistest, wird deine Abfrage wahrscheinlich lang, komplex und schwer zu lesen.

Da viele Abfragen mit der Absicht geschrieben werden, sie zu speichern und in der Zukunft erneut auszuführen, ist eine gute Organisation der Schlüssel zu einem reibungslosen Arbeitsablauf. Wenn du Unterabfragen als CTEs arrangierst, sparst du auf lange Sicht Zeit, Platz und Verwirrung!

Diese Übung ist Teil des Kurses

Datenbearbeitung in SQL

Kurs anzeigen

Anleitung zur Übung

  • Deklariere einen CTE, der die insgesamt erzielten Tore aus den Spielen im August der Saison 2013/2014 berechnet.
  • Verbinde den CTE mit der Ligatabelle mit Hilfe von country_id aus dem match_list CTE.
  • Filtere die Liste in der inneren Unterabfrage, um nur Spiele im August der Saison 2013/2014 auszuwählen.

Interaktive Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

-- Set up your CTE
___ match_list ___ (
    SELECT 
  		country_id,
  	   (home_goal + away_goal) AS goals
    FROM match
  	-- Create a list of match IDs to filter data in the CTE
    WHERE id IN (
       SELECT ___
       FROM ___
       WHERE season = ___ AND EXTRACT(MONTH FROM ___) = ___))
-- Select the league name and average of goals in the CTE
SELECT 
	___,
    ___(___)
FROM league AS l
-- Join the CTE onto the league table
LEFT JOIN ___ ON l.id = match_list.___
GROUP BY l.name;
Code bearbeiten und ausführen