¿Cómo usar la función LISTAGG de Oracle con un filtro único? [duplicar

Esta pregunta ya tiene una respuesta aquí:

LISTAGG en Oracle para devolver valores distintos 23 respuestas

Tengo una tabla como esta:

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

Y quiero el siguiente resultado:

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

Puedo usar la siguiente consulta:

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

Para obtener esto (resultado muy similar):

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

Cualquier idea de cómo puedo filtrar los nombres por singularidad en elLISTAGG ¿llamada

Respuestas a la pregunta(7)

Su respuesta a la pregunta