किसी कॉलम पर PARTITION BY
PARTITION BY क्लॉज़ आपको उन कॉलम्स के आधार पर अलग-अलग "windows" बनाने देता है जिनसे आप अपने परिणामों को विभाजित करना चाहते हैं. उदाहरण के लिए, आप एक ही कॉलम बना सकते हैं जो हर सीज़न के लिए किए गए गोल्स का ओवरऑल औसत निकालता है.
इस अभ्यास में, आप पोलैंड की टॉप-रैंक्ड टीम Legia Warszawa (Warsaw League) के खेले गए मैचों का एक डेटासेट बनाएँगे और उनकी हर मैच की परफॉर्मेंस की तुलना उसी सीज़न के ओवरऑल औसत से करेंगे.
आपको ज़्यादा outliers कहाँ दिखते हैं? क्या वे Legia Warszawa के होम मैचों में हैं या अवे मैचों में?
यह अभ्यास पाठ्यक्रम का हिस्सा है
SQL में Data Manipulation
अभ्यास निर्देश
- उन दो window functions को पूरा करें जो होम और अवे गोल के औसत की गणना करते हैं. हर सीज़न के लिए अलग-अलग औसत निकालने के लिए window functions को season पर partition करें.
- क्वेरी को filter करें ताकि केवल Legia Warszawa के खेले गए मैच शामिल हों,
id = 8673.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
SELECT
date,
season,
home_goal,
away_goal,
CASE WHEN hometeam_id = 8673 THEN 'home'
ELSE 'away' END AS warsaw_location,
-- Calculate separately the average home and away goals scored, partitioned by season
___(___) ___(___ ___ ___) AS season_homeavg,
___(___) ___(___ ___ ___) AS season_awayavg
FROM match
-- Filter the data set for Legia Warszawa (id 8673) matches only
WHERE
___ = ___
OR ___ = ___
ORDER BY (home_goal + away_goal) DESC;