여기서 OVER는 무엇일까요?
윈도우 함수를 사용하면 데이터를 정렬하는 기준으로 원하는 변수를 사용하여 RANK를 만들 수 있습니다. 이때 순위 계산에 사용할 열이나 계산식을 지정해야 하는데, 이는 OVER() 절 안에 ORDER BY 절을 포함하는 방식으로 구현합니다. 아래 예시를 참고하세요.
SELECT
id,
RANK() OVER(ORDER BY home_goal) AS rank
FROM match;
이번 연습 문제에서는 각 리그가 경기당 평균적으로 가장 많은 득점을 하는지를 기준으로 순위가 매겨진 경기 데이터 세트를 만들어 보겠습니다.
이 연습은 강의의 일부입니다
SQL 데이터 조작
연습 안내
league및match에서 리그 이름과 평균 총 득점을SELECT하세요.- 윈도우 함수가 데이터베이스의 모든 리그에 걸친 평균 득점 수의
RANK()를 계산하도록 완성하세요. - 평균 홈 및 원정 득점 총합에 따라 순위를
OVER정렬하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
SELECT
-- Select the league name and average goals scored
___ AS league,
___(___ + ___.away_goal) AS avg_goals,
-- Rank each league over the average goals
___ ___(___ ___ AVG(___.home_goal + ___)) AS league_rank
FROM league AS l
LEFT JOIN match AS m
ON l.id = m.country_id
WHERE m.season = '2011/2012'
GROUP BY l.name
-- Order the query by the rank you created
ORDER BY ___;