Se eu uso array_aggpara coletar nomes, eu os separo por vírgulas, mas caso haja um nullvalor, nulo também é considerado um nome no agregado. Por exemplo :
SELECT g.id,
array_agg(CASE WHEN g.canonical = 'Y' THEN g.users ELSE NULL END) canonical_users,
array_agg(CASE WHEN g.canonical = 'N' THEN g.users ELSE NULL END) non_canonical_users
FROM groups g
GROUP BY g.id;
ele retorna em ,Larry,Philvez de apenas Larry,Phil(no meu 9.1.2, ele mostra NULL,Larry,Phil). como neste violino
Em vez disso, se eu usar string_agg(), ele mostra apenas os nomes (sem vírgulas vazias ou nulos) como aqui
O problema é que Postgres 8.4instalei no servidor e string_agg()não funciona lá. Existe alguma maneira de fazer array_agg funcionar de forma semelhante a string_agg ()?