PARTITION BY по нескольким столбцам
Предложение PARTITION BY позволяет разбивать оконные средние значения сразу по нескольким столбцам. Вы даже можете вычислять данные прямо внутри секции разбивки! Например, можно рассчитать среднее количество голов по сезону и стране или по календарному году (на основе столбца с датой).
В этом упражнении вы вычислите среднее количество голов, забитых дома и в гостях командой Legia Warszawa и её соперниками, с разбивкой по месяцам в каждом сезоне.
Это упражнение является частью курса
Манипуляции с данными в SQL
Инструкции к упражнению
- Создайте две оконные функции, вычисляющие среднее количество голов дома и в гостях с разбивкой по сезону и месяцу.
- Отфильтруйте набор данных по идентификатору команды Legia Warszawa (
8673), чтобы расчёт оконной функции включал только матчи с её участием.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
SELECT
date,
season,
home_goal,
away_goal,
CASE WHEN hometeam_id = 8673 THEN 'home'
ELSE 'away' END AS warsaw_location,
-- Calculate average goals partitioned by season and month
___(home_goal) ___(___ ___ ___,
EXTRACT(___ FROM date)) AS season_mo_home,
___(away_goal) ___(___ ___ ___,
EXTRACT(___ FROM date)) AS season_mo_away
FROM match
WHERE
hometeam_id = ___
OR awayteam_id = ___
ORDER BY (home_goal + away_goal) DESC;