listagg()
を使用します サブクエリ内:
select t1.*, xmlagg
from table1 t1 join
(select name2, listagg(mother_name, ',') within group (order by mother_name) as xmlagg
from table2 t2
group by name2
) t2
on t1.name1 = t2.name2;
編集:
上記のクエリは結合前に集計を行うため、t1.*
を使用できます。 。参加後に行うこともできます:
select t1.name, listagg(mother_name, ',') within group (order by mother_name)
from table1 t1 join
table2 t2
on t1.name1 = t2.name2
group by t1.name;
このフォームでは、select
に列を追加するのが難しくなります 、ただし、好きなもので集計できます。