एक window function जोड़ें
शानदार! अब आपके पास ऐसा result set है जो match की तारीख, home टीम, away टीम, और दोनों टीमों के किए गए goals निकालता है. अब प्रश्न का आख़िरी हिस्सा बचा है — Manchester United हर मैच में कितना बुरी तरह हारी?
इसे जानने के लिए, मुख्य क्वेरी में एक window function जोड़ते हैं जो home_goal और away_goal के अंतर के absolute value के आधार पर matches को रैंक करे. इससे हम स्कोर के अंतर की सीधी तुलना कर पाएँगे, चाहे Manchester United ने home के रूप में खेला हो या away के रूप में!
समीकरण आपके लिए पूरा कर दिया गया है — अब आपको सिर्फ़ window function को सही तरह से पूरा करना है!
यह अभ्यास पाठ्यक्रम का हिस्सा है
SQL में Data Manipulation
अभ्यास निर्देश
- CTEs इस तरह सेट करें कि home और away टीम के पास अपना name, ID, और score जुड़ा हुआ हो.
- मुख्य क्वेरी में
date,home team name,away team name,home goals, औरaway goalsसेलेक्ट करें. - matches को rank करें और स्कोर के अंतर के आधार पर descending क्रम में ऑर्डर करें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
-- 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'));