Aggregate multiple string values to a single value, optionally delimited.

select d.department_id, 
       d.department_name, 
       string_agg(e.first_name, ',' order by first_name) as all_employees
from departments d
  join employees e on d.department_id = e.department_id
group by d.department_id
order by d.department_id;
might return something like this:
department_id | department_name  | all_employees                                                                   
--------------+------------------+-------------------------
           10 | Road consruction | Prostetnic Vogon Jeltz                                                                          
           20 | Hiking           | Arthur, Ford
           30 | Shipping         | Zaphod
           40 | Engineering      | Marvin, Tricia

Back to the SQL Feature Comparison