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

再帰SQLクエリを作成することは可能ですか?

    一般的なテーブル式を使用したスクリプトの例を次に示します。

    with recursive sumthis(id, val) as (
        select id, value
        from example
        where id = :selectedid
        union all
        select C.id, C.value
        from sumthis P
        inner join example C on P.id = C.parentid
    )
    select sum(val) from sumthis
    

    上記のスクリプトは、sumthisという「仮想」テーブルを作成します id列があります およびval 。これは、2つの選択がunion allとマージされた結果として定義されます。 。

    最初のselect ルートを取得します(where id = :selectedid

    2番目のselect 戻るものがなくなるまで、前の結果の子を繰り返し追跡します。

    最終結果は、通常のテーブルのように処理できます。この場合、val列が合計されます。



    1. SQLServerのファイル名とバージョン

    2. SQLiteで外部キーをドロップする方法

    3. MySQLエラー1045(28000):ユーザー'bill' @'localhost'のアクセスが拒否されました(パスワードを使用:YES)

    4. ストアドプロシージャ内からのOracleテーブルまたはビューは存在しません