CTE con subconsultas anidadas
Si te encuentras incluyendo varias subconsultas en la cláusula FROM
con una sentencia anidada, es probable que tu consulta se haga larga, compleja y difícil de leer.
Dado que muchas consultas se escriben con la intención de guardarlas y volver a ejecutarlas en el futuro, una organización adecuada es clave para un flujo de trabajo fluido. ¡Organizar las subconsultas como CTE te ahorrará tiempo, espacio y confusión a largo plazo!
Este ejercicio forma parte del curso
Manipulación de datos en SQL
Instrucciones de ejercicio
- Declara una CTE que calcule los goles totales de los partidos del mes de agosto de la temporada 2013/2014.
- Aplica LEFT JOIN a la CTE para unirla a la tabla de la liga utilizando
country_id
de la CTEmatch_list
. - Filtra la lista en la subconsulta interna para seleccionar solo los partidos de agosto de la temporada 2013/2014.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
-- 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
LEFT JOIN ___ ON l.id = match_list.___
GROUP BY l.name;