CTEs mit verschachtelten Unterabfragen
Wenn du mehrere Unterabfragen in der FROM-Klausel mit verschachtelten Anweisungen auflistest, wird deine Abfrage wahrscheinlich lang, komplex und unübersichtlich.
Da viele Abfragen mit der Absicht geschrieben werden, sie zu speichern und in der Zukunft erneut auszuführen, ist eine gute Organisation entscheidend für einen reibungslosen Arbeitsablauf. Wenn du Unterabfragen als CTEs arrangierst, sparst du dir auf lange Sicht Zeit, Platz und Unklarheiten!
Diese Übung ist Teil des Kurses
<Kurs>Datenbearbeitung in SQL</Kurs>Übungsanweisungen
- Deklariere einen CTE, der die Gesamtzahl der Tore aus den Spielen im August der Saison
'2013/2014'berechnet. - Filtere die Liste in der inneren Unterabfrage, um nur Treffer im August der Saison
'2013/2014'auszuwählen. - Führe einen
LEFT JOINdes CTEs in die Tabelle durch, indem ducountry_idaus dem CTEmatch_listverwendest.
Interaktive praktische Ü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 using country_id
LEFT JOIN ___ ON l.id = match_list.___
GROUP BY l.name;