"không hoàn toàn trùng lặp" trong các nhận xét sẽ chỉ cho bạn đúng hướng: tạo tổng hợp của riêng bạn chức năng . Trước tiên, bạn sẽ cần một hàm nối chuỗi không tổng hợp, giống như sau:
create function concat(t1 text, t2 text) returns text as $$
begin
return t1 || t2;
end;
$$ language plpgsql;
Sau đó, bạn có thể xác định phiên bản tổng hợp của riêng mình cho chức năng đó:
create aggregate group_concat(
sfunc = concat,
basetype = text,
stype = text,
initcond = ''
);
Bây giờ bạn có thể group_concat
tất cả những gì bạn muốn:
select group_concat(s)
from t
group by g
Tôi đã đào cái này ra khỏi kho lưu trữ của mình nhưng tôi nghĩ nó sẽ hoạt động trong 8.2.
Hãy nhớ rằng 8.2 không còn được hỗ trợ nữa nên bạn có thể muốn nâng cấp lên ít nhất là 8.4 càng sớm càng tốt.