PARTITION BY по столбцу
Клауза PARTITION BY позволяет вычислять отдельные «окна» на основе столбцов, по которым вы хотите разбить результаты. Например, можно создать единый столбец, который рассчитывает общее среднее количество голов для каждого сезона.
В этом упражнении вы сформируете набор данных о матчах команды Legia Warszawa (Варшавская лига) — сильнейшего клуба Польши — и сравните результаты отдельных игр с общим средним показателем за соответствующий сезон.
Где вы заметите больше выбросов? В домашних или выездных матчах Legia Warszawa?
Это упражнение является частью курса
Манипуляции с данными в SQL
Инструкции к упражнению
- Заполните две оконные функции, которые вычисляют средние значения голов дома и на выезде. Разбейте оконные функции по сезону, чтобы рассчитать отдельные средние значения для каждого сезона.
- Отфильтруйте запрос так, чтобы он включал только матчи команды Legia Warszawa,
id = 8673.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
SELECT
date,
season,
home_goal,
away_goal,
CASE WHEN hometeam_id = 8673 THEN 'home'
ELSE 'away' END AS warsaw_location,
-- Calculate separately the average home and away goals scored, partitioned by season
___(___) ___(___ ___ ___) AS season_homeavg,
___(___) ___(___ ___ ___) AS season_awayavg
FROM match
-- Filter the data set for Legia Warszawa (id 8673) matches only
WHERE
___ = ___
OR ___ = ___
ORDER BY (home_goal + away_goal) DESC;