Si utilizo array_aggpara recopilar nombres, obtengo mis nombres separados por comas, pero en caso de que haya un nullvalor, ese nulo también se toma como un nombre en el agregado. Por ejemplo :
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;
devuelve en ,Larry,Phillugar de solo Larry,Phil(en mi 9.1.2, se muestra NULL,Larry,Phil). como en este violín
En cambio, si lo uso string_agg(), me muestra solo los nombres (sin comas vacías o nulos) como aquí
El problema es que lo he Postgres 8.4instalado en el servidor y string_agg()no funciona allí. ¿Hay alguna forma de hacer que array_agg funcione de manera similar a string_agg ()?