"не е съвсем дубликат" в коментарите трябва да ви насочи в правилната посока:създайте свой собствен агрегат функция . Първо ще ви трябва неагрегирана функция за конкатенация на низове, нещо като това:
create function concat(t1 text, t2 text) returns text as $$
begin
return t1 || t2;
end;
$$ language plpgsql;
След това можете да дефинирате своя собствена сборна версия на тази функция:
create aggregate group_concat(
sfunc = concat,
basetype = text,
stype = text,
initcond = ''
);
Сега можете да group_concat
всичко, което искате:
select group_concat(s)
from t
group by g
Изрових това от архивите си, но мисля, че трябва да работи в 8.2.
Имайте предвид, че 8.2 вече не се поддържа, така че може да искате да надстроите до поне 8.4 възможно най-скоро.