sql >> データベース >  >> RDS >> PostgreSQL

接続されたノード/エッジのセットの集約

    再帰クエリがその方法です:

    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;
    

    重要なことは、各再帰でルートノードのIDを保持して、最終結果でそのIDでグループ化できるようにすることです。




    1. SQLクエリDIFFDATEが無効な識別子を返します

    2. データベース接続文字列はどこに保存する必要がありますか?

    3. mysql_fetch_array()は'指定された引数は有効なMySQL結果リソースではありません'を返します

    4. php配列を使用したMysqlSELECTステートメント