ComenzarEmpieza gratis

Reunir las CTE

Ahora que has creado las dos subconsultas que identifican al equipo local y al visitante, es el momento de reorganizar tu consulta con las subconsultas home y away como expresiones comunes de tabla (CTE). Verás que la consulta principal incluye la frase SELECT DISTINCT. Si no identificas sólo los partidos de DISTINCT, podrías devolver un registro duplicado por cada partido jugado.

Continúa construyendo la consulta para extraer todos los partidos jugados por el Manchester United en la temporada 2014/2015.

Este ejercicio forma parte del curso

Manipulación de datos en SQL

Ver curso

Instrucciones de ejercicio

  • Declara las CTE home y away antes de tu consulta principal.
  • Une tus CTE a la tabla de partidos utilizando LEFT JOIN.
  • Selecciona los datos relevantes de las CTE en la consulta principal.
  • Selecciona la fecha de match, los nombres de equipo de las CTE y los goles en casa y fuera de casa de match en la consulta principal.

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

-- Set up the home team CTE
___ ___ ___ (
  SELECT m.id, t.team_long_name,
	  CASE WHEN m.home_goal > m.away_goal THEN 'MU Win'
		   WHEN m.home_goal < m.away_goal THEN 'MU Loss' 
  		   ELSE 'Tie' END AS outcome
  FROM match AS m
  LEFT JOIN team AS t ON m.hometeam_id = t.team_api_id),
-- Set up the away team CTE
___ ___ (
  SELECT m.id, t.team_long_name,
	  CASE WHEN m.home_goal > m.away_goal THEN 'MU Loss'
		   WHEN m.home_goal < m.away_goal THEN 'MU Win' 
  		   ELSE 'Tie' END AS outcome
  FROM match AS m
  LEFT JOIN team AS t ON m.awayteam_id = t.team_api_id)
-- Select team names, the date and goals
SELECT DISTINCT
    ___,
    ___.___ AS home_team,
    ___.___ AS away_team,
    ___,
    m.away_goal
-- Join the CTEs onto the match table
FROM match AS m
___ JOIN ___ ON m.id = ___
___ JOIN ___ ON m.id = ___
WHERE m.season = '2014/2015'
      AND (home.team_long_name = 'Manchester United' 
           OR away.team_long_name = 'Manchester United');
Editar y ejecutar código