PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Group_concat tương đương trong postgresql 8.2.11

"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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ActiveRecord ::StatementInvalid. Lỗi PG

  2. Postgresql được xây dựng trong lệnh COPY với Truy vấn được tham số hóa

  3. Với Rails, làm cách nào để tôi có thể truy vấn db để biết số tổng hợp và được nhóm lại theo tuần?

  4. Lỗi High Sierra + Python + Postgresql:Hướng dẫn bất hợp pháp:4

  5. Docker, cài đặt postgresql trong vùng chứa ubuntu:14.04, bị mất khi ra khỏi vùng chứa