Ik zou listagg()
. gebruiken in een subquery:
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;
BEWERKEN:
De bovenstaande query doet de aggregatie vóór de join, zodat deze t1.*
. kan gebruiken . Je kunt het ook doen na de deelname:
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;
Dit formulier maakt het moeilijker om extra kolommen toe te voegen aan de select
, maar je kunt aggregeren op alles wat je maar wilt.