ÎncepețiÎncepe gratuit

Adaugă o funcție de fereastră

Excelent! Acum ai un set de rezultate care conține data meciului, echipa de acasă, echipa oaspete și golurile marcate de fiecare echipă. Mai rămâne o singură componentă de rezolvat – cât de categoric a pierdut Manchester United în fiecare meci?

Pentru a afla asta, adaugă o funcție de fereastră la interogarea principală care să ordoneze meciurile după valoarea absolută a diferenței dintre home_goal și away_goal. Astfel poți compara direct diferența de scor, fără să mai conteze dacă Manchester United a jucat acasă sau în deplasare!

Ecuația este deja completată – tot ce trebuie să faci este să completezi corect funcția de fereastră!

Acest exercițiu face parte din cursul

Manipularea datelor în SQL

Vezi cursul

Instrucțiuni pentru exercițiu

  • Configurează CTE-urile astfel încât atât echipa de acasă, cât și cea oaspete să aibă un nume, un ID și un scor asociate.
  • Selectează date, numele echipei de acasă, numele echipei oaspete, golurile echipei de acasă și golurile echipei oaspete în interogarea principală.
  • Ordonează meciurile după diferența de goluri în ordine descrescătoare.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

-- 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'));
Editează și rulează codul