CTE з вкладеними підзапитами
Якщо ви перераховуєте кілька підзапитів у клаузі FROM із вкладеними виразами, ваш запит, імовірно, стане довгим, складним і важким для читання.
Оскільки багато запитів пишуть із наміром зберігати й запускати їх знову в майбутньому, належна організація — ключ до безперебійної роботи. Упорядкування підзапитів як CTE заощадить вам час, місце й позбавить плутанини в довгостроковій перспективі!
Ця вправа є частиною курсу
Маніпулювання даними в SQL
Інструкції до вправи
- Оголосіть CTE, який обчислює загальну кількість голів у матчах за серпень сезону
'2013/2014'. - Відфільтруйте список у внутрішньому підзапиті, щоб вибрати лише матчі за серпень сезону
'2013/2014'. - Виконайте
LEFT JOINCTE до таблиці league, використовуючи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;