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

Tổng hợp các nhóm nút / cạnh được kết nối

Truy vấn đệ quy là cách để thực hiện:

with recursive tree as (
  select node, parent, length, node as root_id
  from network
  where parent is null
  union all
  select c.node, c.parent, c.length, p.root_id
  from network c
    join tree p on p.node = c.parent
)
select root_id, array_agg(node) as edges_in_group, sum(length) as total_length
from tree
group by root_id;

Điều quan trọng là giữ id của nút gốc trong mỗi lần đệ quy, để bạn có thể nhóm theo id đó trong kết quả cuối cùng.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cập nhật mọi hàng với ngày giờ ngẫu nhiên giữa hai ngày

  2. Nhóm các dấu thời gian theo ngày, không phải theo thời gian

  3. heroku kéo postgresql trên windows

  4. Hàm plpgsql:Trả về các hàng từ chế độ xem được tạo từ bảng ngẫu nhiên

  5. Tìm và thay thế biểu thức chính quy trong Postgres