in postgres select, return a column subquery as an array? in postgres select, return a column subquery as an array? postgresql postgresql

in postgres select, return a column subquery as an array?


Use the aggregate function:

select    usr_id,     name,     array_agg(tag_id) as tag_arrfrom usersjoin tags using(usr_id)group by usr_id, name

or an array constructor from the results of a subquery:

select    u.usr_id,     name,     array(        select tag_id         from tags t         where t.usr_id = u.usr_id        ) as tag_arrfrom users u

The second option is simple and fast while the first one is more generic, especially convenient when you need more than one aggregate from a related table.