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

SQLのポイントのデータベースからパスを取得します

    array[array[source, destination]]で再帰cteを使用します 集計列として:

    with recursive cte(source, destination, path) as (
        select source, destination, array[array[source, destination]]
        from points
    union all
        select p.source, p.destination, path || array[p.source, p.destination]
        from cte c
        join points p on c.destination = p.source
        where not array[array[p.source, p.destination]] <@ path
    )
    select distinct on (path[1:1]) path
    from (
        select distinct on (source, destination) *
        from cte
        order by source, destination, array_length(path, 1) desc
        ) s    
    order by path[1:1], array_length(path, 1) desc;
    
            path         
    ---------------------
     {{1,2},{2,3},{3,7}}
     {{5,7}}
     {{9,12}}
    (3 rows)
    


    1. シングルトンを介したnode.jsmySQL接続

    2. Mysqlの自動インクリメントの問題

    3. PL/SQLプロシージャでDynamicOrderby句を生成するにはどうすればよいですか?

    4. mysql / phpは、mysql DBに接続するための安全な方法ですか?