Oracle 11g tiene esta función ordenada LISTAGG que es más o menos lo que desea, sin embargo, dado que está en 10g, no está disponible para usted (a menos que decida actualizar).
Si por algún motivo no desea (o no puede debido a cualquier motivo) actualizar a 11g, le sugiero que busque algunas alternativas a LISTAGG que están disponibles para usted en 10g.
Puede consultar algunas de las alternativas propuestas aquí
Ajustó rápidamente una adaptación rápida de una de las alternativas propuestas para que coincida con el escenario de su caso:
WITH Q AS
(
SELECT 'North' POD, 'Rony' NAME FROM DUAL UNION ALL
SELECT 'North', 'James' FROM DUAL UNION ALL
SELECT 'North', 'Aby' FROM DUAL UNION ALL
SELECT 'South', 'Sam' FROM DUAL UNION ALL
SELECT 'South', 'Willy' FROM DUAL UNION ALL
SELECT 'West', 'Mike' FROM DUAL
)
SELECT POD,
RTRIM(
XMLAGG (XMLELEMENT(e, name||',') ORDER BY name).EXTRACT('//text()'),
','
) AS name
FROM q
GROUP BY POD;
Pero recuerde que esta no es la solución real, ya que tendrá que adaptarla a su tabla (no a la tabla DUAL ficticia), etc...
Su solución probablemente será algo así como:
SELECT POD,
RTRIM(
XMLAGG (XMLELEMENT(E, NAME||',') ORDER BY NAME).EXTRACT('//text()'),
','
) AS NAME
FROM tbl1
GROUP BY POD;
Si desea cambiar el delimitador, puede cambiarlo de coma en esta parte:
(E, NAME||',')
El RTRIM está ahí solo para cortar la coma final del final de la cadena concatenada, si no le molesta la coma final, puede omitir la función RTRIM para conservar la legibilidad.