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

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;
Редактировать и запускать код