ComenzarEmpieza gratis

Añadir una función de ventana

¡Fantástico! Ahora tienes un conjunto de resultados que recupera la fecha del partido, el equipo local, el equipo visitante y los goles marcados por cada equipo. Te queda un último componente de la pregunta: ¿por cuánto perdió el Manchester United en cada partido?

Para determinarlo, añadamos una función de ventana a la consulta principal que ordene los partidos por valor absoluto de la diferencia entre home_goal y away_goal. Esto nos permite comparar directamente la diferencia de resultados sin tener en cuenta si el Manchester United jugó como equipo local o visitante.

La ecuación está completa para ti: ¡lo único que tienes que hacer es completar correctamente la función de ventana!

Este ejercicio forma parte del curso

Manipulación de datos en SQL

Ver curso

Instrucciones de ejercicio

  • Configura las CTE para que los equipos local y visitante tengan cada uno un nombre, un ID y un marcador asociados.
  • Selecciona la fecha, el nombre del equipo local, el nombre del equipo visitante, los goles en casa y los goles fuera en la consulta principal.
  • Clasifica los partidos y ordénalos por la diferencia de marcador en orden descendente.

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 columns and and rank the matches by goal difference
SELECT DISTINCT
    ___,
    ___.___ AS home_team,
    ___.___ AS away_team,
    m.home_goal, m.away_goal,
    ___() ___(___ ___ ABS(home_goal - away_goal) ___) as match_rank
-- 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' AND home.outcome = 'MU Loss')
      OR (away.team_long_name = 'Manchester United' AND away.outcome = 'MU Loss'));
Editar y ejecutar código