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
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'));