"není zcela duplicitní" v komentářích by vás mělo nasměrovat správným směrem:vytvořte si svůj vlastní agregát funkce . Nejprve budete potřebovat neagregovanou funkci zřetězení řetězců, něco takového:
create function concat(t1 text, t2 text) returns text as $$
begin
return t1 || t2;
end;
$$ language plpgsql;
Poté můžete definovat svou vlastní souhrnnou verzi této funkce:
create aggregate group_concat(
sfunc = concat,
basetype = text,
stype = text,
initcond = ''
);
Nyní můžete group_concat
vše, co chcete:
select group_concat(s)
from t
group by g
Vyhrabal jsem to ze svých archivů, ale myslím, že by to mělo fungovat v 8.2.
Mějte na paměti, že verze 8.2 již není podporována, takže možná budete chtít co nejdříve upgradovat alespoň na 8.4.