IniziaInizia gratis

Mettere insieme i CTE

Ora che hai creato le due sottoquery che identificano gli avversari in casa e in trasferta, è il momento di riorganizzare la tua query usando le sottoquery home e away come Common Table Expressions (CTE). Noterai che la query principale include la frase SELECT DISTINCT. Senza limitarti ai match DISTINCT, potresti ottenere un record duplicato per ogni partita giocata.

Continua a costruire la query per estrarre tutte le partite giocate dal Manchester United nella stagione 2014/2015.

Questo esercizio fa parte del corso

Manipolazione dei dati in SQL

Visualizza il corso

Istruzioni dell'esercizio

  • Dichiara i CTE home e away prima della query principale.
  • Collega i tuoi CTE alla tabella delle partite usando un LEFT JOIN.
  • Seleziona i dati rilevanti dai CTE nella query principale.
  • Nella query principale, seleziona la data da match, i nomi delle squadre dai CTE e i gol in casa/trasferta da match.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

-- 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 the date, team names and goals
SELECT DISTINCT
    ___.___,
    ___.___ AS home_team_name,
    ___.___ AS away_team_name,
    ___.___,
    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');
Modifica ed esegui il codice