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

Cách nhóm theo và nối các mảng trong PostgreSQL

Để giữ nguyên cùng một thứ nguyên của mảng của bạn, bạn không thể sử dụng trực tiếp array_agg() , vì vậy trước tiên chúng ta unnest mảng của bạn và áp dụng distinct để loại bỏ các bản sao (1). Trong truy vấn bên ngoài, đây là thời gian để tổng hợp. Để bảo toàn các giá trị, đặt hàng bao gồm order by trong hàm tổng hợp:

select time, array_agg(col order by col) as col
from (
  select distinct time, unnest(col) as col
  from yourtable
) t
group by time
order by time

(1) Nếu bạn không cần xóa trùng lặp, chỉ cần xóa distinct 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. connect_by_root tương đương trong postgres

  2. Tôi có thể yêu cầu Postgresql bỏ qua lỗi trong giao dịch không

  3. Tôi làm cách nào để ghi nhật ký psycopg2 về thời gian thực hiện truy vấn?

  4. Sự phát triển của khả năng chịu lỗi trong PostgreSQL

  5. PostgreSQL Upsert phân biệt các hàng được chèn và cập nhật bằng cách sử dụng các cột hệ thống XMIN, XMAX và các cột khác