तो मैं इसएक अंतरिक्ष अलग स्ट्रिंग में एकाधिक पंक्तियों कम्बाइन
userid, col
--------------
1, a
1, b
2, c
2, d
3, e
की तरह 5 पंक्तियों मैं क्वेरी करना होगा कैसे तो यह इस
userid, combined
1, a b
2, c d
3, e
तो मैं इसएक अंतरिक्ष अलग स्ट्रिंग में एकाधिक पंक्तियों कम्बाइन
userid, col
--------------
1, a
1, b
2, c
2, d
3, e
की तरह 5 पंक्तियों मैं क्वेरी करना होगा कैसे तो यह इस
userid, combined
1, a b
2, c d
3, e
उपयोग की तरह GROUP_CONCAT aggregate function दिखेगा:
SELECT yt.userid,
GROUP_CONCAT(yt.col SEPARATOR ' ') AS combined
FROM YOUR_TABLE yt
GROUP BY yt.userid
डिफ़ॉल्ट विभाजक एक अल्पविराम (",") है, इसलिए आपको एक ही स्थान के SEPARATOR को निर्दिष्ट करने की आवश्यकता है आउटपुट जो आप चाहते हैं।
आप group_concat में मानों का क्रम सुनिश्चित करने के लिए चाहते हैं, का उपयोग करें:
SELECT yt.userid,
GROUP_CONCAT(yt.col ORDER BY yt.col SEPARATOR ' ') AS combined
FROM YOUR_TABLE yt
GROUP BY yt.userid
मैं कर रहा हूँ आप इस पोस्ट की जाँच कर सकते आप उन्हें रखने के लिए की जरूरत है वर्तमान में हाइव का उपयोग कर इसलिए मैं समूह को भाग से नहीं कर सकता क्योंकि GROUP_CONCAT को एग्रीगेशन फ़ंक्शन के रूप में पहचाना नहीं गया है, वैसे भी इसके आसपास? – haoxu
@haoxu: अगला विकल्प (एक एसक्यूएल प्रेसीडेंट से) एक कर्सर और स्ट्रिंग कॉन्सटेनेशन होगा, लेकिन इसके लिए एक MySQL फ़ंक्शन की आवश्यकता होगी। मैं हाइव से परिचित नहीं हूं - क्या मूल प्रश्न का उपयोग करने का कोई तरीका नहीं है? –
ने HiveQL में GROUP_CONCAT के लिए एक जेआईआरए अनुरोध दायर किया: https://issues.apache.org/jira/browse/HIVE-1689 –
मैं बहुत यकीन है कि आप इस हाइव QL का उपयोग कर ऐसा नहीं कर सकते कर रहा हूँ। हालांकि, ऐसा करना संभव होना चाहिए यदि आप अपना नक्शा/स्क्रिप्ट घटाएं - this tutorial प्रारंभ करने के लिए देखें।
उत्तर पुराना है। नए संस्करणों में विशेषताएं हैं। –
छत्ता में आप उपयोग कर सकते हैं
SELECT userid, collect_set(combined) FROM tabel GROUP BY user_id;
collect_set डुप्लिकेट को हटा।
बिल्कुल वही जो मैं चाहता था! क्वेरी द्वारा समूह के बाहर एक पंक्ति को जोड़ने के लिए एक आकर्षण की तरह काम करता है –
SELECT
userid,
concat_ws(" ", collect_set(col)) AS combined
FROM table
GROUP BY userid
लगभग सटीक डुप्लिकेट की: http://stackoverflow.com/questions/2885709/sql-concatenate-rows-query –