"tidak cukup duplikat" di komentar akan mengarahkan Anda ke arah yang benar:buat agregat Anda sendiri fungsi . Pertama, Anda memerlukan fungsi penggabungan string non-agregat, seperti ini:
create function concat(t1 text, t2 text) returns text as $$
begin
return t1 || t2;
end;
$$ language plpgsql;
Kemudian Anda dapat menentukan versi agregat Anda sendiri dari fungsi tersebut:
create aggregate group_concat(
sfunc = concat,
basetype = text,
stype = text,
initcond = ''
);
Sekarang Anda dapat group_concat
semua yang Anda inginkan:
select group_concat(s)
from t
group by g
Saya menggali ini dari arsip saya, tetapi saya pikir ini akan berfungsi di 8.2.
Perlu diingat bahwa 8.2 tidak lagi didukung sehingga Anda mungkin ingin meningkatkan ke setidaknya 8.4 sesegera mungkin.