ВСЕ подзапросы ПОВСЮДУ
В футбольных лигах матчи проходят на разных стадиях. Команды-победители переходят от одной стадии к следующей, пока не доберутся до финальной. На каждой стадии ставки выше, чем на предыдущей. Таблица match содержит данные о том, на какой стадии проходил каждый матч.
В следующих 3 упражнениях вы построите один запрос с подзапросом в каждом из разделов SELECT, FROM и WHERE. Меняется ли среднее количество забитых голов по мере роста ставок от одной стадии к другой?
Запрос повторяет один и тот же подзапрос, чтобы вы могли потренироваться с каждым вариантом размещения. Каждая копия заново обращается к таблице match, поэтому в реальной работе вы бы вычислили общее среднее значение один раз, как показано в главе 4 с помощью оконной функции.
Это упражнение является частью курса
Манипуляции с данными в SQL
Инструкции к упражнению
- Извлеките среднее количество общих голов с помощью подзапроса в
SELECT. - Вычислите среднее количество общих голов для конкретной
stageв основном запросе. - Отфильтруйте и подзапросы, и основной запрос так, чтобы учитывались только данные сезона 2012/2013.
- Сгруппируйте запрос по столбцу
m.stageс помощьюGROUP.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
SELECT
-- Select the stage and average goals for each stage
m.stage,
ROUND(___(___ + m.away_goal),2) AS avg_goals,
-- Select the average overall goals for the 2012/2013 season
ROUND((SELECT ___(___ + away_goal)
FROM match
WHERE season = ___),2) AS overall
FROM match AS m
-- Filter for the 2012/2013 season
WHERE ___ = ___
-- Group by stage
GROUP BY ___;