T-sql चलती - औसत - गणना


टी-एसक्यूएल में सामान्य चलना। प्रवृत्ति विश्लेषण में एक सामान्य गणना चलती है या रोलिंग औसत है एक औसत चलती औसत, उदाहरण के लिए, पिछले 10 पंक्तियाँ हैं चलती औसत वास्तविक मूल्यों की तुलना में अधिक चिकनी वक्र दिखाती है, और बहुत कुछ चल औसत के लिए एक लंबी अवधि, यह रुझान के विश्लेषण के लिए एक अच्छा उपकरण बना रहा है इस ब्लॉग पोस्ट में दिखाएगा कि टी-एसक्यूएल में चलती औसत की गणना कैसे की जा सकती है SQL सर्वर के संस्करण के आधार पर अलग-अलग तरीकों का इस्तेमाल किया जाएगा। चार्ट नीचे चौरसाई प्रभाव दर्शाता है 200 दिनों की चलती औसत के साथ लाल रेखा स्टॉक कोट्स नीली रेखा हैं लंबी अवधि की प्रवृत्ति स्पष्ट रूप से दिखाई दे रही है। एसक्यूएल मूविंग एवरेज 200 दिनों के लिए। नीचे दिए गए प्रदर्शन को टैड डेटाबेस की आवश्यकता है जिसे यहां स्थित स्क्रिप्ट के साथ बनाया जा सकता है। आगामी उदाहरण हम पिछले 20 दिनों के लिए चलती औसत की गणना करेंगे SQL सर्वर के संस्करण के आधार पर, गणना करने के लिए एक अलग विधि होगी और, जैसा कि हम बाद में देखेंगे, SQL सर्वर के नए संस्करण में फ़ू है nctions बहुत अधिक प्रभावी गणना को सक्षम करते हैं। SQL सर्वर 2012 और बाद में मूविंग औसत। यह संस्करण एक समग्र विंडो फ़ंक्शन का उपयोग करता है Whats SQL में नया क्या विंडो से पहले की पंक्तियों को निर्दिष्ट करने से कितने पंक्तियों को निर्दिष्ट करके विंडो के आकार को प्रतिबंधित करने की संभावना है.Rows preceding 19 है, क्योंकि हम वर्तमान पंक्ति को गणना में भी शामिल कर सकते हैं जैसा कि आप देख सकते हैं, SQL सर्वर 2012 में चलती औसत की गणना बहुत सरल है। नीचे दिए गए चित्र विंडोिंग सिद्धांत दर्शाता है वर्तमान पंक्ति को पीले रंग के साथ चिह्नित किया गया है विंडो को एक नीले रंग की पृष्ठभूमि के साथ चिह्नित किया जाता है चलती औसत नीले रंग की लाइनों में केवल उद्धरण चिह्नों का औसत है। - एसक्यूएल औसत खिड़की चल रहा है। एसक्यूएल सर्वर के पुराने संस्करणों में गणना के परिणाम समान हैं, इसलिए वे फिर से नहीं दिखाए जाएंगे एसक्यूएल सर्वर 2005 2008 आर 2 मूविंग एवरल। यह संस्करण आम टेबल अभिव्यक्ति का उपयोग करता है सीटीई स्वयं को प्रत्येक पंक्ति के लिए पिछले 20 पंक्तियां प्राप्त करने के लिए संदर्भित है। SQL सर्वर 2005 से पहले औसत औसत। जनसंपर्क ई 2005 संस्करण पिछले 20 पंक्तियों को प्राप्त करने के लिए एक ही तालिका में बाएं बाहरी जुड़ने का उपयोग करेगा बाहरी तालिका को उस विंडो को शामिल करने के लिए कहा जा सकता है जिस पर हम औसत पर गणना करना चाहते हैं। प्रदर्शन की तुलना। यदि हम तीन अलग-अलग तरीकों को एक साथ चलाते हैं और परिणामी निष्पादन योजना की जांच करें, चलती औसत की गणना करने के लिए तीन अलग-अलग तरीकों के तरीकों के तरीकों के बीच प्रदर्शन में नाटकीय अंतर है। जैसा कि आप देख सकते हैं, एसक्यूएल 2012 में विंडोिंग फ़ंक्शन सुधार प्रदर्शन में भारी अंतर बनाता है। जैसा कि शुरुआत में उल्लिखित है इस पोस्ट, चलती औसत ट्रेंड को स्पष्ट करने के लिए एक उपकरण के रूप में उपयोग किया जाता है क्रमशः लघु, मध्यम और दीर्घकालिक प्रवृत्तियों में परिवर्तनों को स्थानांतरित करने के लिए क्रमशः विभिन्न लंबाई के चलने की औसत गठबंधन करना एक सामान्य दृष्टिकोण है, विशेष रूचि प्रवृत्ति लाइनों का क्रॉसिंग हैं उदाहरण के लिए, जब लघु प्रवृत्ति लंबी या मध्यम प्रवृत्ति पर चलता है, यह तकनीकी विश्लेषण में एक खरीद संकेत के रूप में व्याख्या की जा सकती है और जब लघु प्रवृत्ति नीचे आती है एक लंबी प्रवृत्ति लाइन, यह एक बेचना संकेत के रूप में व्याख्या की जा सकती है। चार्ट नीचे उद्धरण, Ma20, Ma50 और Ma200.T-SQL Ma20, Ma50, Ma200 खरीदें और सिग्नल बेचते हैं। यह ब्लॉग पोस्ट तकनीकी विश्लेषण के बारे में एक धारा का हिस्सा है , टीए, SQL सर्वर में यहां अन्य पोस्ट देखें। टॉमस लिंड द्वारा पोस्ट किया गया। मैं SQL Server 2008 R2 के साथ काम कर रहा हूं, एक चलती औसत की गणना करने की कोशिश कर रहा हूं, मेरे दृश्य में प्रत्येक रिकॉर्ड के लिए, मैं पिछले 250 के मूल्यों को एकत्र करना चाहता हूं अभिलेख, और उसके बाद इस चयन के लिए औसत की गणना करें। मेरे दृश्य कॉलम निम्नानुसार हैं। TransactionID अद्वितीय है प्रत्येक TransactionID के लिए मैं कॉलम मूल्य के लिए औसत की गणना करना चाहता हूं, पिछले 250 रिकॉर्डों पर, इसलिए TransactionID 300 के लिए, पिछले 250 से सभी मान एकत्र करें पंक्तियों का दृश्य लेनदेन आईडी से अवरोही किया जाता है और फिर कॉलम में MovAvg इन मानों के औसत के परिणाम लिखते हैं, मैं रिकॉर्ड की एक सीमा के भीतर डेटा एकत्र करने के लिए देख रहा हूँ। अक्टूबर 28 14 को 20 58 में बाँटिए। मैं दो औसत गणनाओं को शामिल करना चाहता हूं मूल्य कॉलम का गुच्छा मेरे चयन बयान में। मेरे सरल तालिका संरचना के लिए इस लिंक को देखें, जिसमें वांछित उत्पादन गणना Pastebin. Month1 मूल्य उस महीने के value1- कॉलम के मूल्य, Month2 यदि राशि 0 तो 0 लिखिए, और औसत 1 और महीने 2 और इसी प्रकार। प्रत्येक उत्पाद, मैं एक महीने के भीतर चलने की औसत एक वर्ष के भीतर चाहता हूं, जिसमे मैंने अपने एक्सेल में स्थापित किया है लेकिन मैं अभिव्यक्ति को प्रत्येक उत्पाद के लिए एसक्यूएल में स्थानांतरित नहीं कर सकता, सभी वर्षों में औसतन गणना करता है और सभी मानों के लिए गणना मूल्य की नकल करता है उस उत्पाद के लिए। मुझे आशा है कि आप मेरी मदद कर सकते हैं ऐसा लगता है कि मुझे एक प्रक्रिया की आवश्यकता है लेकिन शायद यह सिर्फ एक साधारण बयान है

Comments