Kom igångKom igång gratis

Lägg till en fönsterfunktion

Utmärkt! Nu har du ett resultat som hämtar matchdatumet, hemmalaget, bortalaget och målen som varje lag scored. Det återstår en sista del av frågan – hur stort var Manchester Uniteds förlust i varje match?

För att ta reda på det lägger vi till en fönsterfunktion i huvudfrågan som rangordnar matcherna efter absolutvärdet av skillnaden mellan home_goal och away_goal. Det gör att vi kan jämföra målskillnaden direkt, utan att behöva ta hänsyn till om Manchester United spelade hemma eller borta!

Ekvationen är redan ifylld – det enda du behöver göra är att korrekt slutföra fönsterfunktionen!

Den här övningen är en del av kursen

Datahantering i SQL

Visa kurs

Övningsinstruktioner

  • Ställ in CTE:erna så att hemmalaget och bortalaget var för sig har ett namn, ett ID och ett resultat kopplade till sig.
  • Välj date, hemmalagetsnamn, bortalagetsnamn, hemmamål och bortamål i huvudfrågan.
  • Rangordna matcherna och sortera efter målskillnaden i fallande ordning.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

-- 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 columns and and rank the matches by goal difference
SELECT DISTINCT
    ___,
    ___.___ AS home_team,
    ___.___ AS away_team,
    m.home_goal, m.away_goal,
    ___() ___(___ ___ ABS(home_goal - away_goal) ___) as match_rank
-- 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' AND home.outcome = 'MU Loss')
      OR (away.team_long_name = 'Manchester United' AND away.outcome = 'MU Loss'));
Redigera och kör kod