चूंकि टिप्पणी में लिंक किए गए उत्तर मेरे समाधान का स्वाद प्रदान नहीं करते हैं, मैं इसे वैसे भी पोस्ट करूंगा।
मैं केवल table_b
का उपयोग करूंगा/करूंगी अवधारणा दिखाने के लिए डमी डेटा के साथ, आप आसानी से अपना जॉइन आदि जोड़ सकते हैं:
with table_b as ( -- dummy data
select 'name'||mod(level,3) name
,mod(level,3) id
from dual
connect by level < 10
union all
select 'name'||mod(level,2) name
,mod(level,3) id
from dual
connect by level < 10
)
select id
,RTRIM (
XMLAGG (
XMLELEMENT (E,XMLATTRIBUTES (name|| ',' AS "Seg")
)
ORDER BY name ASC
).EXTRACT ('./E[not(@Seg = preceding-sibling::E/@Seg)]/@Seg'),
','
) AS "Product Name"
,LISTAGG(b.name, ',') WITHIN GROUP (ORDER BY b.name) AS "Product Name with dups"
from table_b b
group by id;
(आइडिया https://forums.oracle.com/forums/thread.jspa?messageID=9634767&tstart=0#9943367) से लिया गया है