PostreSQL 9 string_agg. , (, ). :
select r.name, string_agg(d.name, ',')
from regions r
join departments d on d.region = r.code
group by r.name
order by r.name;
Picardie Aisne,Oise,Somme
, . , :
select distinct r.name as region, string_agg(d.name, ',') over w as departments
from regions r
join departments d on d.region = r.code
window w as (partition by r.name order by d.name desc
rows between unbounded preceding and unbounded following)