Матч завершён: используем 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;