CTE с вложенными подзапросами
Если вы перечисляете несколько подзапросов в секции FROM с вложенными конструкциями, запрос рискует стать длинным, запутанным и трудночитаемым.
Поскольку многие запросы пишутся с расчётом на повторное использование, грамотная организация кода — залог удобной работы. Оформление подзапросов в виде CTE сэкономит вам время, сократит объём кода и избавит от путаницы в дальнейшем!
Это упражнение является частью курса
Манипуляции с данными в SQL
Инструкции к упражнению
- Объявите CTE, который вычисляет общее количество голов по матчам за август сезона
'2013/2014'. - В условии фильтрации внутреннего подзапроса оставьте только матчи августа сезона
'2013/2014'. - Присоедините CTE к таблице лиг с помощью
LEFT JOINпо полюcountry_idиз CTEmatch_list.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
-- Set up your CTE
___ match_list ___ (
SELECT
country_id,
(home_goal + away_goal) AS goals
FROM match
-- Create a list of match IDs to filter data in the CTE
WHERE id IN (
SELECT ___
FROM ___
WHERE season = ___ AND EXTRACT(MONTH FROM ___) = ___))
-- Select the league name and average of goals in the CTE
SELECT
___,
___(___)
FROM league AS l
-- Join the CTE onto the league table using country_id
LEFT JOIN ___ ON l.id = match_list.___
GROUP BY l.name;