スノーフレークに移行するPostgresのテーブルがいくつかあります。これらのテーブルの一部は階層的です(同じテーブルへの外部キーポイント)。通常、このデータをクエリするには、CTEテーブルや再帰的なSQLステートメントを使用します。
私の知る限り、Snowflakeはこれらの操作をサポートしていません。これを模倣するか、これを回避するために実行できる他のクエリはありますか?
「現在、SnowflakeはDDL操作での共通テーブル式(CTE)を完全にはサポートしていません。」
スノーフレークのドキュメント: https://docs.snowflake.net/manuals/sql-reference/constructs/with.html
参照してください: https://www.postgresql.org/docs/current/static/queries-with.html
Snowflakeは現在、再帰CTEをサポートしています。
支店レベルで金額を統合するアカウントツリーを解析するSQLを構築するだけです。
ソースアカウントツリーデータから、mainを使用して各ブランチと直接のサブブランチ/リーフの組み合わせを構築します
with main as (
select a.scode as src , b.scode as tgt
from accttree a
join accttree b on (a.totalinto=b.scode)
), tree as (
select src, NULL as bridge, tgt
from main
--where hprop = 15365
union all
select m.src, m.tgt as bridge, t.tgt as tgt
from main m
join tree t on (m.tgt = t.src)
)
--Tree gives the branch and leaf relation for the entire set of branches
Select *
from tree