दिलचस्प पोस्ट
फ़ील्ड को शामिल करने वाली स्थिति के आधार पर डेटा फ्रेम का एक सबसेट कैसे निकालना है? उन्नत XAML एनीमेशन प्रभाव पल्स, चींटियों को अग्रसर करना, रोटेशन अलर्ट ड्रॉपडाउन लिस्ट का चुने हुए इंडैक्सआपंग इवेंट फायरिंग नहीं है क्लाइंट द्वारा भेजा गया अनुरोध वाक्यविन्यास गलत था.-स्प्रिंग एमवीसी + जेडीबीसी टेम्पलेट Xcode / iOS5: जब कीबोर्ड दिखाई देता है, तो UIView ऊपर जाएं स्विफ्ट में एक प्रकार के लिए प्रदर्शित किए गए पाठ प्रतिनिधित्व को मैं कैसे बदल सकता हूं? डायनामिक रूप से फ़ॉर्म बनाएं और सबमिट करें सीएसएस का उपयोग कर विभिन्न डिवाइस प्लेटफार्मों का पता लगाएं PHP का उपयोग कर XML फाइल को कैसे संशोधित करें मौजूदा गीट काम के पेड़ से स्थानीय (अनट्रैकेड) फ़ाइलों को कैसे निकालना है? GitHub में दूरस्थ परिवर्तन कैसे मर्ज करें? एंड्रॉइड वेबव्यू "टेलि:" लिंक वेब पेज नहीं मिला दिखाते हैं बूटस्ट्रैप 3 ग्रिड, क्या यह * वास्तव में * करता है कि कितने कॉलम एक पंक्ति में हैं? मैं दो Django क्वेरीशेट्स का संघ कैसे पा सकता हूं? संसाधन फ़ोल्डर से मैं एक फ़ाइल कैसे लोड करूँ?

पोस्टग्रेस्क्ल GROUP_CONCAT समकक्ष?

मेरे पास एक टेबल है और मैं एक पंक्ति प्रति आईडी को फ़ील्ड मानों के साथ जोड़कर जोड़ना चाहता हूं।

मेरी मेज में, उदाहरण के लिए, मेरे पास यह है:

TM67 | 4 | 32556 TM67 | 9 | 98200 TM67 | 72 | 22300 TM99 | 2 | 23009 TM99 | 3 | 11200 

और मैं आउटपुट करना चाहता हूं:

 TM67 | 4,9,72 | 32556,98200,22300 TM99 | 2,3 | 23009,11200 

MySQL में मैं कुल समारोह GROUP_CONCAT का उपयोग करने में सक्षम था, लेकिन वह यहां काम करने में प्रतीत नहीं होता है … क्या PostgreSQL के बराबर है, या इसे पूरा करने का कोई दूसरा तरीका?

Solutions Collecting From Web of "पोस्टग्रेस्क्ल GROUP_CONCAT समकक्ष?"

यह शायद एक अच्छा प्रारंभिक बिंदु (संस्करण 8.4+ केवल) है:

 SELECT id_field, array_agg(value_field1), array_agg(value_field2) FROM data_table GROUP BY id_field 

सरणी_एजीजी एक सरणी देता है, लेकिन आप CAST कर सकते हैं कि पाठ और संपादित करने के लिए आवश्यक हो (नीचे स्पष्टीकरण देखें)।

संस्करण 8.4 से पहले, आपको इसे प्रयोग करने से पहले खुद को परिभाषित करना होगा:

 CREATE AGGREGATE array_agg (anyelement) ( sfunc = array_append, stype = anyarray, initcond = '{}' ); 

(PostgreSQL प्रलेखन से समझाया)

स्पष्टीकरण:

  • पाठ को एक सरणी का कास्टिंग करने का नतीजा यह है कि परिणामी स्ट्रिंग शुरू होती है और कुरकुरा ब्रेसिज़ के साथ समाप्त होती है। यदि वे वांछित नहीं हैं, तो उन ब्रेसेस को कुछ विधि से निकालने की जरूरत है
  • पाठ के लिए ANYARRAY कास्टिंग सर्वोत्तम सीएसवी आउटपुट को सिमुलेट करता है क्योंकि एम्बेडेड अल्पविराम वाले तत्वों को मानक सीएसवी शैली में आउटपुट में दोहराया जाता है। न तो array_to_string () या string_agg () ("group_concat" फ़ंक्शन 9 में जोड़ा गया है) एम्बेडेड कॉमा के साथ उद्धरण स्ट्रिंग्स, परिणामी सूची में तत्वों की एक ग़लत संख्या के परिणामस्वरूप।
  • नया 9.1 string_agg () फ़ंक्शन आंतरिक परिणाम को पहले TEXT में डाली नहीं करता है। इसलिए "string_agg (value_field)" एक त्रुटि उत्पन्न करेगा यदि value_field एक पूर्णांक है "string_agg (value_field :: text)" की आवश्यकता होगी सरणी_एगग () विधि को एकत्रीकरण के बाद केवल एक डाली के लिए आवश्यक है (एक मूल्य प्रति कास्ट के बजाय)।

9.0 के बाद से ये भी आसान है:

 SELECT id, string_agg(some_column, ',') FROM the_table GROUP BY id 
 SELECT array_to_string(array(SELECT a FROM b),', '); 

के रूप में अच्छी तरह से करेंगे

इस तरह से प्रयास करें:

 select field1, array_to_string(array_agg(field2), ',') from table1 group by field1;