एसक्यूएल ग्रुप बाय क्लॉज डेटा को समूहीकृत और एकत्र करने के लिए एक शक्तिशाली उपकरण है। यह विशिष्ट मानदंडों के आधार पर डेटा को समूहीकृत करने और फिर परिणामी समूहों पर कार्रवाई करने का एक उत्कृष्ट तरीका प्रदान करता है।
GROUP BY के लिए एक सामान्य उपयोग मामला तिथियों के अनुसार समूहीकरण है। इस ट्यूटोरियल में, हम GROUP BY क्लॉज के साथ काम करने के मूलभूत सिद्धांतों को सीखेंगे और चर्चा करेंगे कि SQL में दिनांकों के अनुसार डेटा को समूहित करने के लिए इसका उपयोग कैसे करें।
टिप्पणी: हम मानते हैं कि आपको SQL की बुनियादी समझ है। प्रदर्शन उद्देश्यों के लिए, हम इस ट्यूटोरियल में MySQL 8 के उदाहरणों का उपयोग करते हैं। हालाँकि, आप इस ट्यूटोरियल की अवधारणाओं को अन्य SQL-आधारित डेटाबेस इंजनों में स्वतंत्र रूप से पोर्ट कर सकते हैं।
नमूना तालिका:
पहला कदम प्रदर्शन के लिए एक बुनियादी तालिका और नमूना डेटा स्थापित करना है। यदि आपके पास एक मौजूदा टेबल है जिसके साथ आप काम करना चाहते हैं, तो बेझिझक इस सेक्शन को छोड़ दें।
तालिका बनाने के लिए, निम्न क्वेरी का उपयोग करें:
तालिका लेनदेन बनाएँ (
पहचान int शून्य नहीं auto_increment प्राथमिक कुंजी,
तारीख तारीख,
राशि दशमलव ( 10 , 2 )
) ;
तालिका बनाने के बाद, निम्न में दिखाए अनुसार नमूना डेटा डालें:
मान
( '2023-01-01' , 100.00 ) ,
( '2023-01-02' , 50.00 ) ,
( '2023-01-03' , 75.00 ) ,
( '2023-01-04' , 200.00 ) ,
( '2023-01-05' , 150.00 ) ,
( '2023-01-06' , 175.00 ) ,
( '2023-01-07' , 50.00 ) ,
( '2023-01-08' , 100.00 ) ,
( '2023-01-09' , 25.00 ) ,
( '2023-01-10' , 75.00 ) ,
( '2023-01-11' , 150.00 ) ,
( '2023-01-12' , 200.00 ) ,
( '2023-01-13' , 250.00 ) ,
( '2023-01-14' , 175.00 ) ,
( '2023-01-15' , 150.00 ) ,
( '2023-01-16' , 100.00 ) ,
( '2023-01-17' , 50.00 ) ,
( '2023-01-18' , 75.00 ) ;
यह लेन-देन तालिका में यादृच्छिक डेटा जोड़ना चाहिए। परिणामी तालिका को निम्नानुसार दिखाने के लिए हम चयन कथन का उपयोग कर सकते हैं:
चुनना * लेन-देन से;
आउटपुट तालिका:
एक बार हमारे पास डेटा तैयार हो जाने के बाद, हम अगले चरण पर आगे बढ़ सकते हैं।
तिथि के अनुसार SQL समूह
जैसा कि आप अनुमान लगा सकते हैं, हम विशिष्ट मानों के आधार पर दी गई तालिका में डेटा को विभाजित करने के लिए GROUP BY खंड का उपयोग करते हैं। क्लॉज सिंटैक्स इस प्रकार है:
कॉलम 1, कॉलम 2, चुनें ...टेबल_नाम से
ग्रुप बाय कॉलम 1, कॉलम 2, ...;
पिछले सिंटैक्स में, हम उन स्तंभों को निर्दिष्ट करने के लिए GROUP BY खंड का उपयोग करते हैं जिनके द्वारा आप डेटा को समूहित करना चाहते हैं।
पिछली तालिका से, हम डेटा को समूहीकृत करने के लिए दिनांक कॉलम का उपयोग कर सकते हैं जैसा कि निम्न क्वेरी में दिखाया गया है:
चुनना तारीख , जोड़ ( मात्रा ) जैसा कुल राशिलेन-देन से
द्वारा समूह बनाएं तारीख ;
पिछली क्वेरी मूल गणना करती है और योग () फ़ंक्शन का उपयोग करके प्रत्येक दिन के लिए कुल राशि जोड़ती है। फिर हम डेटा को दिनांक मानों के आधार पर समूहित करते हैं। परिणामी तालिका इस प्रकार है:
प्रारूप दिनांक
कभी-कभी, हमें तिथि को प्रारूपित करने और इसे अधिक पठनीय बनाने की आवश्यकता हो सकती है। एक उदाहरण इस प्रकार है:
DATE_FORMAT चुनें ( तारीख , '%m/%d/%Y' ) जैसा स्वरूपित_दिनांक, योग ( मात्रा ) जैसा कुल राशिलेन-देन से
द्वारा समूह बनाएं तारीख ;
इसे निर्दिष्ट प्रारूप में दिनांक मान निम्नानुसार वापस करना चाहिए:
SQL फ़िल्टर दिनांक सीमा
हम WHERE क्लॉज का उपयोग करके परिणाम सेट को दिनांक सीमा द्वारा फ़िल्टर भी कर सकते हैं। एक उदाहरण इस प्रकार है:
DATE_FORMAT चुनें ( तारीख , '%m/%d/%Y' ) जैसा स्वरूपित_दिनांक, योग ( मात्रा ) जैसा कुल राशिलेन-देन से
कहाँ तारीख बीच में '2023-01-01' और '2023-01-15'
द्वारा समूह बनाएं तारीख ;
परिणामी तालिका निम्नलिखित में दिखाई गई है:
ये लो! दिनांक मानों के आधार पर दी गई तालिका से डेटा को समूहित करने का एक तरीका।
निष्कर्ष
इस ट्यूटोरियल ने विशिष्ट मूल्यों के आधार पर डेटा को सॉर्ट करने के लिए SQL में ग्रुप बाय क्लॉज के साथ काम करने के मूल सिद्धांतों की खोज की। इसने हमें दिनांक मानों के आधार पर डेटा को विभाजित करने के लिए ग्रुप बाय क्लॉज का उपयोग करने के तरीके को कवर करने की अनुमति दी।