यहां एक समाधान है जो MySQL के लिए काम करेगा। यह समूह को एक साथ जोड़ने के लिए चयन खंड में एक सहसंबद्ध उपश्रेणी का उपयोग करता है Col2
मूल्य। तर्क यह है कि हम एक ही Col1
को साझा करने वाले रिकॉर्ड के दिए गए समूह के लिए केवल उन मानों को एकत्रित करते हैं जो वर्तमान पंक्ति से कम या उसके बराबर हैं। मूल्य।
SELECT
Col1,
(SELECT GROUP_CONCAT(t2.Col2 ORDER BY t2.Col2) FROM yourTable t2
WHERE t2.Col2 <= t1.Col2 AND t1.Col1 = t2.Col1) Col2
FROM yourTable t1
ORDER BY
t1.Col1,
t1.Col2;
यहाँ Oracle में वही क्वेरी है:
SELECT
Col1,
(SELECT LISTAGG(t2.Col2, ',') WITHIN GROUP (ORDER BY t2.Col2) FROM yourTable t2
WHERE t2.Col2 <= t1.Col2 AND t1.Col1 = t2.Col1) Col2
FROM yourTable t1
ORDER BY
t1.Col1,
t1.Col2;
ध्यान दें कि केवल वास्तविक परिवर्तन LISTAGG
. को प्रतिस्थापित कर रहा है GROUP_CONCAT
. के लिए ।