시작하기무료로 시작하기

지역별 최다 메달리스트

이번 연습 문제의 목표는 지역별로 최다 메달을 보유한 선수를 보여주는 것입니다. 이 보고서를 설정하려면 각 행에 1씩 증가하는 정수를 부여하는 ROW_NUMBER() 윈도 함수가 필요해요. 첫 번째 행은 1, 두 번째 행은 2와 같은 식입니다.

이 윈도 함수의 문법은 ROW_NUMBER() OVER (PARTITION BY field ORDER BY field)입니다. 처음 함수에는 인자가 없다는 점에 유의하세요.

올바르게 설정하면 row_num = 1은 해당 지역에서 가장 많은 메달을 딴 선수를 의미합니다. 합계가 같은 선수가 여러 명일 경우, 그중 누구라도 최상위 결과로 나타날 수 있어요. 또한 HAVING이나 WHERE 절 안에서는 윈도 계산을 사용할 수 없으므로, 필터링을 위해 서브쿼리를 사용해야 합니다.

E:R Diagram을 참고하셔도 좋아요. 널 처리 문제를 피하기 위해 summer_games_clean을 사용하겠습니다.

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

SQL로 리포트 만들기

강의 보기

실습형 인터랙티브 연습

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

SELECT 
	-- Query region, athlete_name, and total gold medals
	____, 
    ____ AS athlete_name, 
    ____ AS total_golds,
    -- Assign a regional rank to each athlete
    ____ AS row_num
FROM ____ AS s
JOIN ____ AS a
ON ____
JOIN ____ AS c
ON ____
GROUP BY ____;
코드 편집 및 실행