महीना-दर-महीना तुलना
महीनों की तुलना करने के लिए, आपको निम्न में से किसी एक विंडो फंक्शन का उपयोग करना होगा:
LAG(value, offset), जो रिपोर्ट की वर्तमान पंक्ति से offset संख्या जितनी पंक्तियों से पहले का मान देता है.LEAD(value, offset), जो रिपोर्ट की वर्तमान पंक्ति से offset संख्या जितनी पंक्तियों के बाद का मान देता है.
आपका लक्ष्य ऐसा रिपोर्ट बनाना है जो प्रत्येक देश के महीने-दर-महीना views दिखाए. कुछ सुझाव:
- आपको तारीखों को महीनों में बकेट करना होगा. ऐसा करने के लिए आप
DATE_PART()फंक्शन का उपयोग कर सकते हैं. - आप प्रतिशत बदलाव (percent change) निम्न सूत्र से निकाल सकते हैं:
(value)/(previous_value) - 1. - यदि
LAG()याLEAD()फंक्शन में offset मान नहीं दिया गया है, तो यह डिफ़ॉल्ट रूप से 1 होता है.
क्योंकि टेबल जून के मध्य में रुक जाती है, क्वेरी को इस तरह सेट किया गया है कि उसमें केवल मई के अंत तक का डेटा शामिल हो.
यह अभ्यास पाठ्यक्रम का हिस्सा है
SQL में रिपोर्टिंग
अभ्यास निर्देश
web_dataसेcountry_idलें औरDATE_PART()फंक्शन का उपयोग करmonthबनाएँ.month_viewsबनाएँ जो महीने के भीतर कुल views निकाले.previous_month_viewsबनाएँ जो दिए गए देश के लिए पिछले महीने के कुल views निकाले.perc_changeफ़ील्ड बनाएँ जो दिए गए देश के लिए इस महीने का प्रतिशत बदलाव पिछले महीने के सापेक्ष निकाले, जहाँ नकारात्मक मान views में कमी दर्शाता है और सकारात्मक मान वृद्धि.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
SELECT
-- Pull month and country_id
____ AS month,
____,
-- Pull in current month views
____ AS month_views,
-- Pull in last month views
____ AS previous_month_views,
-- Calculate the percent change
____ AS perc_change
FROM ____
WHERE date <= '2018-05-31'
GROUP BY ____;