एसक्यूएल स्ट्रिंग एग्रीगेट फ़ंक्शंस

Esakyu Ela Stringa Egrigeta Fanksansa



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

एक उदाहरण में SUM(), AVG(), COUNT(), MAX और MIN() जैसे फ़ंक्शन शामिल हैं। हालाँकि, SQL में समग्र फ़ंक्शंस के बारे में आप एक बात देखेंगे कि वे संख्यात्मक संचालन के लिए तैयार हैं।

लेकिन क्या आप जानते हैं कि ऐसे समग्र फ़ंक्शन हैं जो स्ट्रिंग मानों से निपटते हैं? इस ट्यूटोरियल में, हम इन फ़ंक्शंस को देखेंगे, वे कैसे काम करते हैं, और हम उन्हें अपने डेटाबेस में कैसे उपयोग कर सकते हैं।







ध्यान दें: यह एक अच्छी बात है कि इस पोस्ट में चर्चा किए गए अधिकांश फ़ंक्शन मानक SQL का हिस्सा नहीं हैं। परिणामस्वरूप, वे विभिन्न डेटाबेस इंजनों जैसे PostgreSQL, SQL सर्वर, आदि का विस्तार हैं।



स्ट्रिंग एग्रीगेट फ़ंक्शंस क्या हैं?

स्ट्रिंग एग्रीगेट फ़ंक्शंस फ़ंक्शंस का एक सेट है जो समूह या पंक्तियों के भीतर स्ट्रिंग्स के सेट पर एकत्रीकरण संचालन करता है और एकल परिणाम लौटाता है।



हम मुख्य रूप से एक निश्चित कॉलम के आधार पर पंक्तियों को समूहीकृत करने और फिर प्रत्येक समूह में स्ट्रिंग्स को एकत्रित करने के लिए ग्रुप बाय क्लॉज के साथ इन कार्यों का उपयोग करते हैं।





कुछ सामान्य स्ट्रिंग समुच्चय कार्यों में शामिल हैं:

  • GROUP_CONCAT() - PostgreSQL और MySQL
  • STRING_AGG - SQL सर्वर
  • ARRAY_AGG - पोस्टग्रेएसक्यूएल
  • लिस्टैग - ओरेकल

आइए प्रत्येक फ़ंक्शन का पता लगाएं और यह क्या प्रदान करता है।



ग्रुप_CONCAT()

GROUP_CONCAT() फ़ंक्शन PostgreSQL और MySQL डेटाबेस द्वारा समर्थित है। यह हमें एकाधिक पंक्तियों से मानों को एक स्ट्रिंग में संयोजित करने की अनुमति देता है।

मान लीजिए हमारे पास एक 'कर्मचारी' तालिका इस प्रकार है:

टेबल कर्मचारी बनाएं (
कर्मचारी_आईडी INT ऑटो_वृद्धि प्राथमिक कुंजी,
प्रथम_नाम VARCHAR(50),
अंतिम_नाम VARCHAR(50),
विभाग वर्चर(50)
);

कर्मचारियों (प्रथम_नाम, अंतिम_नाम, विभाग) में मान डालें
('ऐलिस', 'स्मिथ', 'मानव संसाधन'),
('बॉब', 'जॉनसन', 'मार्केटिंग'),
('चार्ली', 'विल्सन', 'फाइनेंस'),
('डेविड', 'ब्राउन', 'सेल्स'),
('ईवा', 'डेविस', 'इंजीनियरिंग');

आउटपुट:

यदि हम पहले नाम को लेकर और अंतिम नाम के साथ जोड़कर कर्मचारी का पूरा नाम निर्धारित करना चाहते हैं, तो हम GROUP_CONCAT() फ़ंक्शन का उपयोग कर सकते हैं जैसा कि निम्नलिखित उदाहरण में दिखाया गया है:

चुनना
विभाग,
GROUP_CONCAT(प्रथम_नाम, '', अंतिम_नाम) पूर्ण_नाम के रूप में
से
कर्मचारी
द्वारा समूह बनाएं
विभाग;

इस मामले में, हम 'first_name' और 'last_name' कॉलम से स्ट्रिंग्स को जोड़ने के लिए फ़ंक्शन का उपयोग करते हैं, और नामों में स्थान जोड़ने के लिए एक खाली स्ट्रिंग का उपयोग करते हैं।

इसमें प्रत्येक विभाग में कर्मचारियों की एक सूची है।

STRING_AGG

यह फ़ंक्शन GROUP_CONCAT() फ़ंक्शन के समान है लेकिन यह केवल SQL सर्वर डेटाबेस में समर्थित है।

एक उदाहरण उपयोग इस प्रकार है:

चुनना
विभाग,
STRING_AGG(प्रथम_नाम, अंतिम_नाम, '') पूर्ण_नाम के रूप में
से
कर्मचारी
द्वारा समूह बनाएं
विभाग;

यह एक सीमांकक के रूप में स्थान के रूप में निर्दिष्ट कॉलम पर स्ट्रिंग संयोजन करता है।

ARRAY_AGG

ARRAY_AGG फ़ंक्शन केवल PostgreSQL डेटाबेस में उपलब्ध है। यह हमें मानों को एक एकल सरणी में एकत्रित करने की अनुमति देता है।

एक उदाहरण इस प्रकार है:

चुनना
विभाग,
ARRAY_AGG(प्रथम_नाम) AS कर्मचारी_सूची
से
कर्मचारी
द्वारा समूह बनाएं
विभाग;

इससे कर्मचारी का नाम एक सरणी के रूप में एकत्रित होना चाहिए।

लिस्टैग()

LISTAGG() फ़ंक्शन केवल Oracle डेटाबेस में उपलब्ध है। यह हमें एक निर्दिष्ट सीमांकक के साथ मानों को एक स्ट्रिंग में संयोजित करने की अनुमति देता है।

एक उदाहरण इस प्रकार है:

विभाग का चयन करें, LISTAGG(प्रथम_नाम, अंतिम_नाम, '' ') समूह के भीतर (कर्मचारी_नाम एएससी द्वारा आदेश) कर्मचारियों के रूप में
कर्मचारियों से
विभाग द्वारा समूह;

यह कर्मचारियों के नाम और निर्दिष्ट सीमांकक को जोड़ता है।

निष्कर्ष

इस ट्यूटोरियल में, हमने स्ट्रिंग एग्रीगेट फ़ंक्शंस के बारे में सीखा जो हमें स्ट्रिंग मानों की एक सूची प्रदान करने और एकल परिणामी स्ट्रिंग मान में एक ऑपरेशन करने की अनुमति देता है।