PostgreSQLで簡単な再帰関数を実装しようとしていますが、完了できません...
列Col1とCol2を含むテーブルMyTableがあります。内部のデータは次のようになります。
Col1 | Col2
1 | 2
2 | 5
2 | 6
3 | 7
4 | 5
4 | 2
5 | 3
Col1 fe(1,2)のパラメーター配列として受け取り、次のようにCol2から値を返す関数を作成したいと思います。
1 | 2
2 | 5
2 | 6
そしてその後、結果で再びそれを行います:(2、5、6)そう:
1 | 2
2 | 5
2 | 6
5 | 3
(2はすでに入っており、キー「6」は存在しません)そして再び(3):
1 | 2
2 | 5
2 | 6
5 | 3
3 | 7
(7)値「7」はCol1に存在しないため、何もありません。
簡単な再帰ですが、どのように実装すればよいかわかりません。私はこれまでに次のようなものを持っています:
with recursive aaa(params) as (
select Col1, Col2
from MyTable
where Col1 = params -- I need an array here
union all
select Col1, Col2
from aaa
)
select * from aaa;
しかし、もちろんそれは機能しません
前もって感謝します