समूहों में सभी मूल्यों को सूचीबद्ध करने के लिए Oracle में LISTAGG फ़ंक्शन का उपयोग कैसे करें - कैसे

समूहों में सभी मूल्यों को सूचीबद्ध करने के लिए Oracle में LISTAGG फ़ंक्शन का उपयोग कैसे करें

मैं समझाता हूं कि आप डेटा के विभिन्न समूहों के लिए एक एकल स्ट्रिंग में मूल्यों की एक सूची को संयोजित करने के लिए Oracle SQL में स्ट्रिंग एकत्रीकरण कैसे कर सकते हैं।

क्या आपको कभी परिणामों की सूची को एक परिणाम में संयोजित करने की आवश्यकता है?

क्या आपके पास कभी नामों की एक सूची थी, और उन्हें गंदे या कस्टम कोड लिखे बिना, नामों की अल्पविराम से अलग की गई सूची में जोड़ना चाहते थे?

खैर, Oracle SQL में, यह काफी आसान है।

इसके लिए विशेष रूप से बनाया गया एक फ़ंक्शन है। यह कुछ ऐसा नहीं है जो मुझे पता था जब मैंने ओरेकल मूल रूप से सीखा - यह केवल कुछ है जो मैंने काम पर सीखा है।

जिस फ़ंक्शन के बारे में मैं बात कर रहा हूं वह है LISTAGG फ़ंक्शन।

LISTAGG फ़ंक्शन आपको सूची से मानों को एक एकल मान में संयोजित करने देता है। या, आप इसे एक समूह के भीतर कई मूल्यों में संयोजित करने के लिए उपयोग कर सकते हैं।

मे तुम्हें दिखाता हूँ की मेरा क्या मतलब हैं।

LISTAGG फ़ंक्शन का सिंटैक्स है:

LISTAGG (मापने_एक्सप्र [, सीमांकक)) बिना ग्रुप (आदेश_बाइ_क्लॉज) [OVER query_partition_clause]

उपाय_एक्सप्रैस वह मूल्य है जिसे आप सम्मिलित या संक्षिप्त करना चाहते हैं। Order_by_clause यह है कि आप सूची के भीतर अपने डेटा को कैसे क्रमबद्ध करना चाहते हैं, और query_partition_clause का उपयोग एक विश्लेषणात्मक कार्य के रूप में समूह डेटा के लिए किया जाता है।

कुल 3 चरण

चरण 1: अपना डेटा देखें

मान लीजिए कि आपके ग्राहकों की तालिका में नामों की एक सूची है:

देश, first_name
यूएसए, जॉन
इंग्लैंड, मार्क
मेक्सिको, सारा
यूएसए, मिशेल
यूएसए, पीटर
मेक्सिको, मारिया

मान लें कि आप इस तरह का आउटपुट चाहते हैं:

जॉन, मार्क, सारा, मिशेल, पीटर, मारिया

LISTAGG फ़ंक्शन के बिना ऐसा करने के लिए, आपको PL / SQL कोड को ब्लॉक करने की आवश्यकता हो सकती है, या अपने आवेदन में रिकॉर्ड का चयन कर सकते हैं और उन्हें अल्पविराम से अलग की गई सूची में बदलने के लिए किसी अन्य फ़ंक्शन का उपयोग कर सकते हैं।

यहीं पर LISTAGG आता है।

चरण 2: अपना LISTAGG फ़ंक्शन लिखें

आप इसे एक अल्पविराम से अलग सूची में बदलने के लिए LISTAGG का उपयोग कर सकते हैं:

LISTAGG (first_name, ',') withIN GROUP (first_name द्वारा आदेश)

यह पहले_नाम कॉलम पर एकत्रीकरण करता है, जिसमें अल्पविराम और अंतरिक्ष चरित्र को सीमांकक के रूप में उपयोग किया जाता है। यह अंतिम शब्द के अंत में परिसीमन नहीं करना जानता है।

चरण 3: ग्रुप बाय और लिस्टग का उपयोग करें

यदि आप प्रत्येक देश के लिए एकत्रित मूल्यों को प्राप्त करना चाहते हैं तो क्या होगा?

LISTAGG के साथ यह करना आसान है।

बस देश क्षेत्र का चयन करें।

चयनित देश, LISTAGG (first_name, ',') withIN GROUP (first_name द्वारा आदेश)
तबले से
देश द्वारा ग्रुप

आपको इस तरह एक परिणाम मिलेगा:

देश, सूची
यूएसए - जॉन, मिशेल, पीटर
इंग्लैंड - मार्क
मेक्सिको - सारा, मारिया

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

मैंने इस फ़ंक्शन पर पूर्ण IT व्यावसायिक पर उदाहरणों के साथ एक अधिक व्यापक मार्गदर्शिका लिखी है, जिसे आप नीचे पढ़ सकते हैं।