НачатьНачать бесплатно

Самый титулованный спортсмен по регионам

Цель этого упражнения — показать самого титулованного спортсмена по каждому региону. Для построения такого отчёта воспользуйтесь оконной функцией 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 ____;
Редактировать и запускать код