एसक्यूएल संचयी योग

Esakyu Ela Sancayi Yoga



SQL में, संचयी योग एक विधि को संदर्भित करता है जो हमें डेटाबेस तालिका के भीतर एक संख्यात्मक कॉलम के चल रहे कुल की गणना करने की अनुमति देता है। एक संचयी योग विभिन्न प्रकार के परिदृश्यों में काम आता है जैसे प्रगति पर नज़र रखना या किसी दिए गए मूल्य के रोलिंग औसत की गणना करना।

इस ट्यूटोरियल में, हम सीखेंगे कि विभिन्न तरीकों और तकनीकों का उपयोग करके SQL में संचयी योग को कैसे लागू और उपयोग किया जाए।







नमूना डेटा

यह बेहतर ढंग से समझने के लिए कि हम संचयी योग को कैसे लागू और उपयोग कर सकते हैं, आइए नमूना डेटा के साथ एक मूल तालिका स्थापित करके शुरुआत करें। यह हमें इस पोस्ट में सभी तरीकों की कार्यप्रणाली को शीघ्रता और कुशलता से प्रदर्शित करने की अनुमति देता है।



एक बुनियादी तालिका बनाकर शुरुआत करें जो उत्पाद की जानकारी संग्रहीत करती है।



टेबल उत्पाद बनाएं (
product_id INT प्राथमिक कुंजी,
उत्पाद_नाम VARCHAR ( 255 ) ,
कीमत दशमलव ( 10 , 2 )
) ;





इससे 'उत्पाद' नामक एक नई तालिका बननी चाहिए जो उत्पाद आईडी, उत्पाद का नाम और प्रत्येक उत्पाद की कीमत संग्रहीत करती है।

फिर हम एक नमूना डेटा जोड़ने के लिए आगे बढ़ सकते हैं जैसा कि निम्नलिखित उदाहरण सम्मिलित कथनों में दिखाया गया है:



उत्पादों में डालें ( उत्पाद_आईडी, उत्पाद_नाम, कीमत )
मान
( 1 , 'विजुअल स्टूडियो कोड' , 10.00 ) ,
( 2 , 'उत्कृष्ट पाठ' , 80.00 ) ,
( 3 , 'पाइचार्म प्रोफेशनल' , 199.00 ) ,
( 4 , 'ग्रहण आईडीई' , 30.00 ) ,
( 5 , 'इंटेलिजे आइडिया अल्टीमेट' , 699.00 ) ,
( 6 , 'गिटहब डेस्कटॉप' , 20.00 ) ,
( 7 , 'प्रतीक्षा करें सॉफ्टवेयर' , 10.00 ) ,
( 8 , 'एक्सकोड' , 660.00 ) ,
( 9 , 'नेटबीन्स' , 0.00 ) ,
( 10 , 'परमाणु' , 60.00 ) ;

नोट: दिया गया डेटा पूरी तरह से काल्पनिक है। यह किसी भी सूचीबद्ध वस्तु के वास्तविक मूल्य का प्रतिनिधित्व नहीं करता है।

परिणामी तालिका इस प्रकार है:

एसक्यूएल संचयी योग (स्वयं शामिल हों)

उन तकनीकों में से एक जिसका उपयोग हम किसी दिए गए कॉलम पर संचयी योग करने के लिए कर सकते हैं, स्व-जुड़ने की विधि का उपयोग करना है। इस पद्धति का एक फायदा यह है कि यह लगभग सभी SQL डेटाबेस में काम करता है, यहां तक ​​कि वे भी जो विंडो फ़ंक्शंस का समर्थन नहीं करते हैं।

उदाहरण के लिए पिछली 'उत्पाद' तालिका लें। हम मूल्य कॉलम का संचयी योग बना सकते हैं जैसा कि निम्नलिखित क्वेरी में दिखाया गया है:

चुनना
p1.product_id,
p1.उत्पाद_नाम,
पी1.कीमत,
जोड़ ( पी2.कीमत ) AS संचयी_योग
से
उत्पाद पी1
जोड़ना
उत्पाद पी2
पर
p1.product_id > = p2.product_id
द्वारा समूह बनाएं
p1.product_id,
p1.उत्पाद_नाम,
पी1.कीमत
द्वारा आदेश
p1.product_id;

क्या आपने क्वेरी की कार्यप्रणाली पर ध्यान दिया? यदि नहीं, तो हमारे साथ बने रहें क्योंकि हम इसे चरण दर चरण समझाते हैं।

दिए गए उदाहरण क्वेरी में, हम 'उत्पाद' तालिका के लिए दो उपनाम - 'पी1' और 'पी2' बनाकर शुरू करते हैं जो हमें स्वयं-जुड़ने में सक्षम बनाता है।

फिर हम 'p1' और 'p2' को जोड़ने के लिए इस शर्त पर आगे बढ़ते हैं कि 'p1' का 'product_id' 'p2' के 'product_id' से अधिक या उसके बराबर है।

अगले चरण में, हम sum() फ़ंक्शन को कॉल करते हैं जो मूल रूप से प्रत्येक पंक्ति के लिए कीमतों के संचयी योग की गणना करता है।

अंत में, हम 'product_id', 'product_name', और 'price' का उपयोग करके परिणामों को समूहित करते हैं और परिणामों को क्रमबद्ध करते हैं।

इस ऑपरेशन के बाद, हमारे पास प्रत्येक रिकॉर्ड के लिए एक संचयी योग होना चाहिए जैसा कि परिणामी तालिका में दिखाया गया है:

जैसा कि आप देख सकते हैं, हमें पिछली सभी पंक्तियों का कुल योग मिलता है। अंतिम पंक्ति में पिछली सभी पंक्तियों का कुल योग होना चाहिए।

SQL संचयी योग (विंडो फ़ंक्शंस)

SQL में संचयी योग की गणना करने का एक अधिक कुशल और व्यावहारिक तरीका यह है कि जब भी यह समर्थित हो तो विंडो फ़ंक्शंस का लाभ उठाया जाए।

यदि आपके पास SQL ​​सर्वर, PostgreSQL, या MySQL संस्करण 8.0 और उससे ऊपर का डेटाबेस है, तो किसी दिए गए कॉलम का संचयी योग निर्धारित करने के लिए यह सबसे उपयोगी और अनुशंसित तरीका है।

उदाहरण पर एक नज़र डालें जैसा कि निम्नलिखित में दिखाया गया है:

चुनना
उत्पाद आयडी,
प्रोडक्ट का नाम,
कीमत,
जोड़ ( कीमत ) ऊपर ( उत्पाद_आईडी द्वारा ऑर्डर करें ) AS संचयी_योग
से
उत्पाद;

इस मामले में, हम 'उत्पाद' तालिका से 'उत्पाद_आईडी', 'उत्पाद_नाम' और 'मूल्य' कॉलम का चयन करके शुरू करते हैं।

फिर हम OVER क्लॉज का उपयोग करके SUM() फ़ंक्शन को विंडो फ़ंक्शन के रूप में उपयोग करते हैं।

ओवर क्लॉज में, हम ऑर्डर बाय क्लॉज निर्दिष्ट करते हैं जो उस क्रम को परिभाषित करता है जिसमें संचयी योग की गणना की जाती है।

इसे एक समान आउटपुट लौटाना चाहिए जैसा कि निम्नलिखित में दिखाया गया है:

आप देखेंगे कि सेल्फ-जॉइन का उपयोग करने की तुलना में विंडो फ़ंक्शंस का उपयोग करना अधिक सुसंगत, कुशल और पठनीय है।

निष्कर्ष

इस ट्यूटोरियल में, हमने SQL में संचयी योगों के बारे में सब कुछ सीखा। हमने यह भी कवर किया कि SQL में संचयी योग करने के लिए सेल्फ-जॉइन और विंडो फ़ंक्शंस का उपयोग कैसे करें।