No Oracle, você pode usar
listagg()
, mas não tem distinct
opção. Portanto, use uma subconsulta e dois níveis de agregação:select listagg(id, ',') within group (order by id) as id, name, sum(cnt)
from (select id, name, count(*) as cnt
from t
group by id, name
) x
group by name;