Самый титулованный спортсмен по регионам
Цель этого упражнения — показать самого титулованного спортсмена по каждому региону. Для построения такого отчёта воспользуйтесь оконной функцией ROW_NUMBER(), которая нумерует строки в виде последовательных целых чисел: первая строка получает номер 1, вторая — 2 и так далее.
Синтаксис этой оконной функции: ROW_NUMBER() OVER (PARTITION BY field ORDER BY field). Обратите внимание, что начальная функция не принимает аргументов.
При правильной настройке значение row_num = 1 соответствует самому титулованному спортсмену в данном регионе. Если у нескольких спортсменов одинаковое общее количество наград, на первом месте может оказаться любой из них. Учтите, что оконные вычисления нельзя использовать в условиях HAVING или WHERE, поэтому для фильтрации потребуется подзапрос.
При необходимости обращайтесь к ER-диаграмме. Мы будем использовать summer_games_clean, чтобы избежать обработки значений NULL.
Это упражнение является частью курса
Отчётность в 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 ____;