如何将该SQL查询写入SNOWFLAKE?
按级别从双连接选择级别lv <= 3;
答案 0 :(得分:1)
您可以使用CONNECT BY(https://docs.snowflake.com/en/sql-reference/constructs/connect-by.html)和此处(https://docs.snowflake.com/en/user-guide/queries-hierarchical.html)找到一些不错的起点。
Snowflake还支持递归CTE。
答案 1 :(得分:0)
似乎您想将行重复三遍。对于固定的小乘数(例如3),您可以枚举数字:
select c.lv, a.*
from abc a
cross join (select 1 lv union all select 2 union all select 3) c
本着原始查询的精神,一种更通用的方法是使用标准的递归common-table-expression生成数字:
with cte as (
select 1 lv
union all select lv + 1 from cte where lv <= 3
)
select c.lv, a.*
from abc a
cross join cte c