PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Menggabungkan kumpulan simpul / tepi yang terhubung

Kueri rekursif adalah caranya:

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;

Yang penting adalah menyimpan id dari simpul akar di setiap rekursi, sehingga Anda dapat mengelompokkan berdasarkan id itu di hasil akhir.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kendala unik pada kombinasi dua kolom?

  2. Beberapa koneksi database di Rails

  3. Kesalahan Heroku:ActionView::Template::Error (metode `captcha' tidak ditentukan untuk #<Message:0x007fc9df016930>)

  4. Streaming baris dari PostgreSQL (dengan ukuran pengambilan)

  5. Pencarian teks lengkap PG di rel menggunakan permata pg_search untuk substring