Erste SchritteKostenlos loslegen

Die CTEs zusammenstellen

Nachdem du nun die beiden Unterabfragen zur Identifizierung der Heim- und Auswärtsgegner erstellt hast, ist es an der Zeit, deine Abfrage mit den home- und away-Unterabfragen als allgemeine Tabellenausdrücke (CTEs) umzugestalten. Du wirst feststellen, dass die Hauptabfrage eine SELECT DISTINCT-Anweisung enthält. Wenn du nicht nur die DISTINCT Spiele identifizierst, könntest du für jedes gespielte Spiel einen doppelten Datensatz erhalten.

Baue die Abfrage weiter aus, um alle Spiele von Manchester United in der Saison 2014/2015 zu extrahieren.

Diese Übung ist Teil des Kurses

Datenbearbeitung in SQL

Kurs anzeigen

Anleitung zur Übung

  • Deklariere die CTEs home und away vor deiner Hauptabfrage.
  • Verbinde deine CTEs mit Hilfe von LEFT JOIN mit der Spieltabelle.
  • Wähle die relevanten Daten aus den CTEs in der Hauptabfrage aus.
  • Wähle das Datum aus match, die Mannschaftsnamen aus den CTEs und die Heim-/Auswärtstore aus match in der Hauptabfrage.

Interaktive Übung zum Anfassen

Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.

-- Set up the home team CTE
___ ___ ___ (
  SELECT m.id, t.team_long_name,
	  CASE WHEN m.home_goal > m.away_goal THEN 'MU Win'
		   WHEN m.home_goal < m.away_goal THEN 'MU Loss' 
  		   ELSE 'Tie' END AS outcome
  FROM match AS m
  LEFT JOIN team AS t ON m.hometeam_id = t.team_api_id),
-- Set up the away team CTE
___ ___ (
  SELECT m.id, t.team_long_name,
	  CASE WHEN m.home_goal > m.away_goal THEN 'MU Loss'
		   WHEN m.home_goal < m.away_goal THEN 'MU Win' 
  		   ELSE 'Tie' END AS outcome
  FROM match AS m
  LEFT JOIN team AS t ON m.awayteam_id = t.team_api_id)
-- Select team names, the date and goals
SELECT DISTINCT
    ___,
    ___.___ AS home_team,
    ___.___ AS away_team,
    ___,
    m.away_goal
-- Join the CTEs onto the match table
FROM match AS m
___ JOIN ___ ON m.id = ___
___ JOIN ___ ON m.id = ___
WHERE m.season = '2014/2015'
      AND (home.team_long_name = 'Manchester United' 
           OR away.team_long_name = 'Manchester United');
Bearbeiten und Ausführen von Code