윈도우 함수 추가하기
잘하셨습니다! 이제 경기 날짜, 홈팀, 원정팀, 그리고 각 팀이 기록한 득점을 가져오는 결과 집합이 생겼습니다. 이제 질문에 대한 마지막 요소가 남아 있습니다 맨체스터 유나이티드는 각 경기에서 얼마나 크게 패배했을까요?
이를 확인하기 위해, 메인 쿼리에 윈도우 함수를 추가하여 home_goal과 away_goal의 차이의 절댓값을 기준으로 경기 순위를 매겨 보겠습니다. 이렇게 하면 맨체스터 유나이티드가 홈팀이었는지 원정팀이었는지와 관계없이 점수 차이를 직접 비교할 수 있습니다!
수식은 이미 완성되어 있습니다. 윈도우 함수 부분만 올바르게 완성하면 됩니다!
이 연습은 강의의 일부입니다
SQL 데이터 조작
연습 안내
- 홈팀과 원정팀 각각에 이름, ID, 점수가 포함되도록 CTE를 설정하세요.
- 메인 쿼리에서
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'));