Скользящий максимум медалей китайских спортсменов
Фреймы позволяют «заглядывать» вперёд или назад, не прибегая предварительно к функциям относительного смещения LAG и LEAD для получения значений предыдущих строк в текущую.
Это упражнение является частью курса
PostgreSQL: сводная статистика и оконные функции
Инструкции к упражнению
- Выведите имена спортсменов, количество завоёванных медалей и максимальное количество медалей, сравнивая только двух предыдущих и текущего спортсмена, отсортировав результаты по именам спортсменов в алфавитном порядке.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
WITH Chinese_Medals AS (
SELECT
Athlete, COUNT(*) AS Medals
FROM Summer_Medals
WHERE
Country = 'CHN' AND Medal = 'Gold'
AND Year >= 2000
GROUP BY Athlete)
SELECT
-- Select the athletes and the medals they've earned
___,
___,
-- Get the max of the last two and current rows' medals
___ OVER (ORDER BY ___ ASC
ROWS BETWEEN ___
AND ___) AS Max_Medals
FROM Chinese_Medals
ORDER BY Athlete ASC;