sql >> Database >  >> RDS >> PostgreSQL

Samengevoegde sets knooppunten / randen samenvoegen

Een recursieve zoekopdracht is de beste keuze:

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;

Het belangrijkste is om de id van het rootknooppunt in elke recursie te behouden, zodat u in het uiteindelijke resultaat op die id kunt groeperen.




  1. Hoe een SSIS-pakket uit te voeren wanneer een bestand in de map is aangekomen?

  2. SQL - WHERE-component met JOIN

  3. Asynchrone replicatie instellen van Galera Cluster naar standalone MySQL-server met GTID

  4. Selecteer verschillende waarden op basis van een kolom met maximale datumwaarde uit de tweede kolom