स्लाइडिंग विंडो पर चलायमान औसत
BETWEEN PRECEDING AND CURRENT ROW से N-अवधि का चलायमान औसत निकालें
स्लाइडिंग विंडो पर चलायमान औसत, CoddyKit पर SQL साक्षात्कार की तैयारी का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह SQL साक्षात्कार की तैयारी सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। SQL साक्षात्कार की तैयारी पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
गतिशील औसत से जुड़ा प्रश्न
विश्लेषकों से यह प्रश्न लगातार पूछा जाता है: "राजस्व का 7-दिन का गतिशील औसत निकालिए।" गतिशील औसत शोरयुक्त दैनिक डेटा को प्रत्येक मान का उसके हाल के आस-पास के मानों के साथ औसत निकालकर सुचारु करता है।
साक्षात्कार में अपेक्षित उत्तर स्पष्ट स्लाइडिंग फ़्रेम के साथ विंडो वाला AVG है। मुख्य कौशल फ़्रेम की सीमाएँ इस तरह चुनना है कि विंडो क्रम के साथ सही ढंग से आगे बढ़े।
मुख्य पैटर्न
गतिशील औसत का सामान्य रूप AVG(value) OVER (ORDER BY ... ROWS BETWEEN n PRECEDING AND CURRENT ROW) है। फ़्रेम खिसकता रहता है: हर पंक्ति पर यह वर्तमान पंक्ति और उससे पिछली n पंक्तियों को कवर करता है।
दैनिक पंक्तियों पर 7-दिन की विंडो के लिए 6 पंक्तियाँ पीछे जाएँ और वर्तमान पंक्ति को जोड़ें, जिससे कुल 7 पंक्तियाँ मिलें। एक की कमी या अधिक होना वह सबसे आम गलती है जिसे साक्षात्कारकर्ता पकड़ते हैं।
SELECT
sale_date,
amount,
AVG(amount) OVER (
ORDER BY sale_date
ROWS BETWEEN 6 PRECEDING AND CURRENT ROW
) AS moving_avg_7d
FROM daily_sales;विंडो का आकार सही ढंग से गिनना
विंडो का आकार preceding + 1 के बराबर होता है, क्योंकि +1 वर्तमान पंक्ति के लिए है। इसलिए:
- 3-पंक्ति की विंडो:
ROWS BETWEEN 2 PRECEDING AND CURRENT ROW - 7-पंक्ति की विंडो:
ROWS BETWEEN 6 PRECEDING AND CURRENT ROW - 30-पंक्ति की विंडो:
ROWS BETWEEN 29 PRECEDING AND CURRENT ROW
साक्षात्कार में यह गणना ज़ोर से बताइए, ताकि पैनल को दिखे कि आप सोच-समझकर उत्तर दे रहे हैं, अनुमान नहीं लगा रहे।
केंद्रित बनाम पश्चगामी विंडो
ऊपर का उदाहरण पश्चगामी औसत है: यह केवल पीछे के मानों को देखता है, इसलिए कारणात्मक है और पूर्वानुमान डैशबोर्ड के लिए सुरक्षित है।
केंद्रित औसत दोनों दिशाओं में देखता है, जैसे 7-पंक्ति की केंद्रित विंडो के लिए ROWS BETWEEN 3 PRECEDING AND 3 FOLLOWING। केंद्रित विंडो अधिक सममित ढंग से सुचारु करती हैं, लेकिन वास्तविक समय में सबसे हाल की पंक्तियों के लिए उनकी गणना नहीं की जा सकती। बताइए कि आपके उपयोग-प्रसंग को इनमें से किसकी आवश्यकता है।
SELECT
sale_date,
AVG(amount) OVER (
ORDER BY sale_date
ROWS BETWEEN 3 PRECEDING AND 3 FOLLOWING
) AS centered_avg_7
FROM daily_sales;विंडो की सीमा का प्रभाव
डेटा की शुरुआत में पूरी विंडो अभी उपलब्ध नहीं होती। 7-दिन के पश्चगामी औसत की पहली पंक्ति के लिए केवल 1 पंक्ति उपलब्ध होती है, इसलिए AVG केवल उसी एक मान का औसत निकालता है।
इसका अर्थ है कि शुरुआती पंक्तियाँ कम पंक्तियों पर आधारित एक "प्रारंभिक चरण" का औसत दिखाती हैं। साक्षात्कारकर्ता पूछते हैं कि इसे कैसे संभालेंगे। दो विकल्प हैं: अपूर्ण विंडो स्वीकार करें, या पूरी संख्या उपलब्ध होने की शर्त लगाकर शुरुआती पंक्तियों को छिपा दें।
अपूर्ण विंडो छिपाना
यदि व्यवसाय पूरी विंडो उपलब्ध होने तक NULL चाहता है, तो उसी फ़्रेम पर COUNT(*) का उपयोग करें और CASE अभिव्यक्ति से छोटी विंडो को खाली कर दें।
यह एक परिष्कृत स्पर्श है, जो दिखाता है कि आपने सीमाओं पर शुद्धता के बारे में भी सोचा है—एक ऐसा विवरण जिसे कई उम्मीदवार छोड़ देते हैं।
SELECT
sale_date,
CASE WHEN COUNT(*) OVER w = 7
THEN AVG(amount) OVER w
END AS moving_avg_7d
FROM daily_sales
WINDOW w AS (
ORDER BY sale_date
ROWS BETWEEN 6 PRECEDING AND CURRENT ROW
);WINDOW के साथ फ़्रेम का पुनः उपयोग
पिछली क्वेरी में नामित WINDOW क्लॉज़ का उपयोग किया गया था। जब वही फ़्रेम कई बार आता है, तो उसे WINDOW w AS (...) के रूप में एक बार परिभाषित करके OVER w से संदर्भित करने पर क्वेरी DRY और पढ़ने योग्य रहती है।
पोस्टग्रेज़, MySQL 8 और एसक्यूएल सर्वर नामित विंडो का समर्थन करते हैं। साक्षात्कार में इसका उपयोग करना केवल नकल-चिपकाव से आगे की विंडो फ़ंक्शन दक्षता का संकेत देता है।
SELECT
sale_date,
AVG(amount) OVER w AS avg_7d,
SUM(amount) OVER w AS sum_7d
FROM daily_sales
WINDOW w AS (
ORDER BY sale_date
ROWS BETWEEN 6 PRECEDING AND CURRENT ROW
);कैलेंडर-दिन बनाम पंक्तियों का भ्रम
एक सूक्ष्म जाल यह है कि यदि तालिका में कुछ दिन नहीं हैं, तो ROWS 6 PRECEDING पिछली 7 दर्ज पंक्तियों तक फैला होता है, जो 7 से अधिक कैलेंडर दिनों को कवर कर सकता है।
अंतरालों का ध्यान रखने वाले वास्तविक कैलेंडर-आधारित 7-दिन के औसत के लिए अंतराल ऑफ़सेट वाला RANGE उपयोग करें, या पहले एक पूर्ण दिनांक-श्रृंखला से जुड़ें ताकि हर दिन की एक पंक्ति हो। इस अंतर का नाम लेना पिछले पाठ की ROWS-बनाम-RANGE वाली मुख्य समझ को दर्शाता है।
SELECT
sale_date,
AVG(amount) OVER (
ORDER BY sale_date
RANGE BETWEEN INTERVAL '6 days' PRECEDING AND CURRENT ROW
) AS calendar_avg_7d
FROM daily_sales;प्रति-समूह गतिशील औसत
संचयी योगों की तरह, गतिशील औसत को भी आम तौर पर प्रत्येक इकाई के लिए फिर से शुरू करना पड़ता है। PARTITION BY जोड़ें, ताकि प्रत्येक उत्पाद या स्टोर को अपनी अलग गतिशील विंडो मिले, जो दूसरे समूहों में न फैले।
फ़्रेम और क्रम प्रत्येक विभाजन के भीतर स्वतंत्र रूप से काम करते हैं, इसलिए हर समूह की शुरुआती पंक्तियाँ अपना प्रारंभिक चरण सही ढंग से शुरू करती हैं।
SELECT
product_id,
sale_date,
AVG(amount) OVER (
PARTITION BY product_id
ORDER BY sale_date
ROWS BETWEEN 6 PRECEDING AND CURRENT ROW
) AS product_ma_7d
FROM daily_sales;समतलीकरण का प्रयोग
इसकी आवश्यकता क्यों है? दैनिक राजस्व में तेज़ उतार-चढ़ाव होता है; गतिशील औसत प्रवृत्ति को स्पष्ट करता है। विश्लेषक अक्सर कच्चे मान को उसकी समतल की गई रेखा के साथ दिखाते हैं, ताकि डैशबोर्ड में संकेत और शोर दोनों दिखाई दें।
गति का पता लगाने के लिए आप छोटे और लंबे गतिशील औसतों की भी तुलना कर सकते हैं, जैसे 7-दिन बनाम 30-दिन। एसक्यूएल में यह गतिशील औसतों के एक-दूसरे को पार करने के बराबर है।
SELECT
sale_date,
amount,
AVG(amount) OVER (ORDER BY sale_date
ROWS BETWEEN 6 PRECEDING AND CURRENT ROW) AS ma_7,
AVG(amount) OVER (ORDER BY sale_date
ROWS BETWEEN 29 PRECEDING AND CURRENT ROW) AS ma_30
FROM daily_sales;साक्षात्कार की जाँच-सूची
गतिशील औसत से जुड़े प्रश्न का सही उत्तर देने के लिए इन बातों को शामिल करें:
AVG OVER (ORDER BY ... ROWS BETWEEN n-1 PRECEDING AND CURRENT ROW)।- विंडो का आकार = पिछली पंक्तियों की संख्या + 1।
- पश्चगामी बनाम केंद्रित का चुनाव।
- अपूर्ण विंडो का प्रारंभिक चरण और उसे छिपाने का तरीका।
- जब दिन छूटे हों तब
ROWSबनामRANGE। - प्रत्येक इकाई के लिए फिर से शुरू करने हेतु
PARTITION BY।
त्वरित जाँच
दैनिक पंक्तियों पर 7-दिन के पश्चगामी गतिशील औसत के लिए फ़्रेम चुनिए।
पुनरावलोकन: गतिशील औसत
गतिशील औसत का रूप AVG(value) OVER (ORDER BY ... ROWS BETWEEN n-1 PRECEDING AND CURRENT ROW) है, जहाँ विंडो का आकार पिछली पंक्तियों की संख्या और एक के बराबर होता है। उपयोग-प्रसंग के अनुसार पश्चगामी या केंद्रित विंडो चुनें, COUNT की जाँच से प्रारंभिक पंक्तियों को संभालें, और जब कैलेंडर के अंतराल महत्वपूर्ण हों तो RANGE अंतराल का उपयोग करें।
PARTITION BY से प्रत्येक इकाई के लिए विंडो फिर से शुरू करें और नामित WINDOW से फ़्रेम का पुनः उपयोग करें। अब हम संचयी योगों को कुल के संचयी हिस्से के माध्यम से प्रतिशतों में बदलेंगे।
एआई शिक्षक के साथ SQL सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 30
- पाठ
- 120
अक्सर पूछे जाने वाले प्रश्न
क्या “स्लाइडिंग विंडो पर चलायमान औसत” पाठ निःशुल्क है?
हाँ—“स्लाइडिंग विंडो पर चलायमान औसत” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और SQL साक्षात्कार की तैयारी पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। SQL साक्षात्कार की तैयारी पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“स्लाइडिंग विंडो पर चलायमान औसत” में मैं क्या सीखूँगा?
BETWEEN PRECEDING AND CURRENT ROW से N-अवधि का चलायमान औसत निकालें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ SQL साक्षात्कार की तैयारी का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या SQL साक्षात्कार की तैयारी शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर SQL साक्षात्कार की तैयारी शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“स्लाइडिंग विंडो पर चलायमान औसत” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस SQL साक्षात्कार की तैयारी पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर SQL साक्षात्कार की तैयारी पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- विंडो फ़्रेम से संचयी योग
- फ़्रेमिंग में ROWS बनाम RANGE
- स्लाइडिंग विंडो पर चलायमान औसत
- संचयी वितरण और कुल का प्रतिशत