For this task you will want to use LISTAGG() . Other answers do not remove one of the duplicate values, to remove duplicates, you can use something similar to this:
select c.efforts_id, c.cycle_name, listagg(r.release_name, ', ') within group (order by c.efforts_id) as release_name from ( select efforts_id, listagg(cycle_name, ', ') within group (order by efforts_id) as cycle_name from yourtable group by efforts_id ) c inner join ( select distinct efforts_id, release_name from yourtable ) r on c.efforts_id = r.efforts_id group by c.efforts_id, c.cycle_name
See SQL Fiddle with Demo
Taryn source share