In PostgreSQL 9.0 o successivo usa string_agg(val, ',')
.
Restituisce una stringa con delimitatori a tua scelta.
array_agg(val)
restituisce un array , nessuna sorpresa lì. Le parentesi graffe che vedi sono parte integrante di array literals
- la rappresentazione testuale degli array.
Nelle versioni precedenti (o in qualsiasi versione in realtà) puoi sostituire con array_to_string(array_agg(val), ',')
.
Oppure, quick'n'dirty:trim(array_agg(val)::text, '{}'
- se i valori non iniziano o finiscono mai tra parentesi graffe.