select name,ltrim(max(sys_connect_by_path(id,'、')) keep (dense_rank last order by curr),'、' )as id
from
(select name,id,row_number() over (partition by name order by name) as curr,
        row_number() over (partition by name order by name)-1 as prev from test)
group by name
connect by prev=prior curr and name=prior name start with curr=1