一般的なテーブル式を使用したスクリプトの例を次に示します。
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列が合計されます。