W Oracle możesz użyć listagg()
, ale nie ma distinct
opcja. Użyj więc podzapytania i dwóch poziomów agregacji:
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;