시작하기무료로 시작하기

윈도 함수 추가하기

아주 잘하셨어요! 이제 경기 날짜, 홈 팀, 원정 팀, 각 팀의 득점을 가져오는 결과 집합이 준비되었어요. 이제 남은 마지막 요소는 이것입니다 — 각 경기에서 맨체스터 유나이티드는 얼마나 크게 졌나요?

이를 판단하려면, 메인 쿼리에 윈도 함수를 추가해 home_goalaway_goal의 차이의 절댓값으로 경기를 랭크해 봅시다. 이렇게 하면 맨체스터 유나이티드가 홈이었는지 원정이었는지에 관계없이 점수 차이를 직접 비교할 수 있어요!

식은 이미 완성되어 있으니 — 윈도 함수만 올바르게 완성하시면 됩니다!

이 연습은 강의의 일부입니다

SQL에서의 데이터 조작

강의 보기

연습 안내

  • CTE를 설정해 home 팀과 away 팀 각각에 이름, ID, 득점이 매칭되도록 하세요.
  • 메인 쿼리에서 date, home team name, away team name, home goals, away goals를 선택하세요.
  • 점수 차이에 따라 경기를 랭크하고, 내림차순으로 정렬하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

-- 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'));
코드 편집 및 실행