GROUP_CONCAT in MySQL

Group_concat in sql, how to merge string in mysql, string aggregation, How to order Group concat in SQL?

जब भी हम एक से अधिक Rows की String Value को जोड़ना हो तब हम Group_Concat का उपयोग करते हैं । एक तरह से हम इसे Aggregate Function भी कह सकते हैं क्युकी यह Rows को Group करने ka कार्य तो करता ही हैं केवल यह Calculation (Count, Sum, Avg, Min, Max) के स्थान पर Concat ही करता हैं ।

आप निम्न Image से समझ सकते हैं की Group Concat किस प्रकार से कार्य करता हैं ।

group_concat with all options

Example Data for Group Concat

Example के लिए हमने एक Table जिसका नाम citemmst हैं उसमे Customer Name (cust_nm) और Item Name (item_nm) Columns हैं, अब हम Group Concat का उपयोग कर सीखेंगे कई किस तरह से हम एक Customer से Related data को Merge कर एक ही Column मे ला सकते हैं ।


1. GROUP_CONCAT Without any Options (Simple)

यह पर हमने केवल GROUP CONCAT का उपयोग किया हैं, इसका उपयोग Group By के साथ किया जाता हैं। हमे एक Customer के Data को Merge करना हैं इसलिए हमने GROUP BY cust_nm पर किया हैं ।

SELECT cust_nm, GROUP_CONCAT(item_nm)
FROM citemmst
GROUP BY cust_nm
group_concat without option

अब केवल 3 Customers के केवल 3 ही Records आ रहे हैं जबकि पहले 10 Records थे । Item वाला Column Merge हो कर एक ही Row मे उसकी वैल्यू जुड़ गई हैं।

Related Video : Group_Concat in MySQL


2. GROUP_CONCAT With DISTINCT

जब भी हमे Duplicate Remove करना हो तब हम GROUP CONCAT के साथ DISTINCT का उपयोग करते हैं। ऐसा करने से जो भी Duplicate Data होता हैं वह Remove हो जाता हैं ।

SELECT cust_nm, GROUP_CONCAT(DISTINCT item_nm )
from citemmst
group by cust_nm
group_concat with Distinct

उपरोक्त Example मे आपने देखा होगा जो पहले Duplicate records थे अब वह Merge नहीं हुवे हैं ।


3. GROUP_CONCAT With ORDER BY

यदि आप merge किए data कई Sequence भी बदलना चाहते हैं तब आपको GROUP CONCAT मे ORDER BY का उपयोग करना होगा।

  • हमने यह पर Customer Name को भी Order किया हैं इसलिए last मे एक बार Order by का उपयोग किया है ।
  • आप यह पर DESC का उपयोग कर Order को Descending भी कर सकते हैं ।
SELECT cust_nm, GROUP_CONCAT(item_nm ORDER BY item_nm) 
FROM citemmst 
GROUP BY cust_nm 
ORDER BY cust_nm
group_concat with Order By

उपरोक्त Example मे आप देख रहे होंगे कई अब जो Merge Data हैं वह Alphabetic Order मे sort हो गया हैं।


4. GROUP_CONCAT With SEPARATOR

by Default आप जब भी GROUP CONCAT का उपयोग करते हैं तब यह Comma (,) का उपयोग कर Data को concat करता हैं। यदि आप Comma के स्थान पर कुछ और भी लगाना चाहते हैं तो आपको SEPARATOR का उपयोग करना होगा।

SELECT cust_nm, GROUP_CONCAT( item_nm  SEPARATOR ' -- ')
from citemmst
group by cust_nm
group_concat with Separator

उपरोक्त Example मे Separator का उयोग कर हमने Comma के स्थान पर — लिया हैं।


आशा हैं मुझे की आपको MySQL Group Concat बहुत अच्छे से समझ मे आ गया होगा, यदि फिर भी आपके कोई Doubts हैं तो आप मुझे Comment कर सकते हैं ।

यह article कैसा लगा बताना न भूले , अपना कीमती समय देने के लिए धन्यवाद ।

हमारे अन्य आर्टिकल

Add a Comment

Your email address will not be published. Required fields are marked *