De "niet helemaal duplicaat" in de opmerkingen zouden je in de goede richting moeten wijzen:maak je eigen aggregaat functie . Eerst heb je een niet-geaggregeerde tekenreeksaaneenschakelingsfunctie nodig, zoiets als dit:
create function concat(t1 text, t2 text) returns text as $$
begin
return t1 || t2;
end;
$$ language plpgsql;
Vervolgens kunt u uw eigen geaggregeerde versie van die functie definiëren:
create aggregate group_concat(
sfunc = concat,
basetype = text,
stype = text,
initcond = ''
);
Nu kunt u group_concat
alles wat je wilt:
select group_concat(s)
from t
group by g
Ik heb dit uit mijn archieven opgegraven, maar ik denk dat het zou moeten werken in 8.2.
Houd er rekening mee dat 8.2 niet langer wordt ondersteund, dus misschien wilt u zo snel mogelijk upgraden naar minimaal 8.4.