CTEs com subconsultas aninhadas
Se você estiver listando várias subconsultas na cláusula FROM com comandos aninhados, sua consulta provavelmente ficará longa, complexa e difícil de ler.
Como muitas consultas são escritas com a intenção de serem salvas e executadas novamente no futuro, a organização adequada é fundamental para um fluxo de trabalho contínuo. Ao organizar as subconsultas como CTEs, você economizará tempo, espaço e minimizará a confusão a longo prazo!
Este exercício faz parte do curso
Manipulação de dados em SQL
Instruções do exercício
- Declare uma CTE que calcule o total de gols dos jogos disputados em agosto da temporada
'2013/2014'. - Filtre a lista na subconsulta interna para selecionar apenas correspondências em agosto da temporada
'2013/2014'. - Faça
LEFT JOINda CTE na tabela da liga usandocountry_idda CTEmatch_list.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
-- 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;