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

Матч завершён: используем OVER

Конструкция OVER() позволяет применять агрегирующую функцию ко всему набору данных — аналогично подзапросам в SELECT. При этом OVER() имеет ряд существенных преимуществ: запросы выполняются быстрее, а сама конструкция поддерживает широкий набор дополнительных функций и параметров, которые мы рассмотрим далее в этой главе.

В этом упражнении вы перепишете несколько запросов из предыдущих глав, используя конструкцию OVER().

Это упражнение является частью курса

Манипуляции с данными в SQL

Посмотреть курс

Инструкции к упражнению

  • Выберите ID матча, name страны, season, home_goal и away_goal из таблиц match и country.
  • Дополните запрос так, чтобы он вычислял среднее количество голов по всем матчам и добавлял это агрегированное значение в каждую строку с помощью оконной функции.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

SELECT 
	-- Select the match id, country name, season, home, and away goals
	___, 
    c.___ AS country, 
    m.season,
	___.home_goal,
	___,
    -- Use a window to include the aggregate average in each row
	___(___.home_goal + ___) ___ AS overall_avg
FROM match AS m
LEFT JOIN country AS c ON m.country_id = c.id;
Редактировать и запускать код