Como usar a função LISTAGG da Oracle com um filtro exclusivo? [duplicado

Esta pergunta já tem uma resposta aqui:

LISTAGG no Oracle para retornar valores distintos 3 respostas

Tenho uma tabela como esta:

group_id  name  
--------  ----
1         David
1         John
1         Alan
1         David
2         Julie
2         Charles

E eu quero o seguinte resultado:

group_id  names
--------  -----
1         'Alan, David, John'
2         'Charles, Julie'

Eu posso usar a seguinte consulta:

select group_id, 
       listagg(name, ',') within group (order by name) as names
from demotable
group by group_id 

Para obter isso (resultado muito semelhante):

group_id  names
--------  -----
1         'Alan, David, David, John'
2         'Charles, Julie'

Alguma idéia de como posso filtrar os nomes por exclusividade noLISTAGG ligar

questionAnswers(7)

yourAnswerToTheQuestion