Si está en 11.2 en lugar de solo 11.1, puede usar LISTAGG
función agregada
SELECT listagg( interval, ',' )
WITHIN GROUP( ORDER BY interval )
FROM (SELECT DISTINCT range AS interval
FROM table_name
WHERE age = 62)
Si está utilizando una versión anterior de Oracle, puede utilizar uno de los otros Técnicas de agregación de cadenas de Oracle en la página de Tim Hall. Antes de 11.2, mi preferencia personal sería crear un definido por el usuario función agregada para que luego puedas
SELECT string_agg( interval )
FROM (SELECT DISTINCT range AS interval
FROM table_name
WHERE age = 62)
Sin embargo, si no desea crear una función, puede usar Aproximación a ROW_NUMBER y SYS_CONNECT_BY_PATH aunque eso tiende a ser un poco más difícil de seguir
with x as (
SELECT DISTINCT range AS interval
FROM table_name
WHERE age = 62 )
select ltrim( max( sys_connect_by_path(interval, ','))
keep (dense_rank last order by curr),
',') range
from (select interval,
row_number() over (order by interval) as curr,
row_number() over (order by interval) -1 as prev
from x)
connect by prev = PRIOR curr
start with curr = 1