我很难将分区代码从Teradata转换为Snowflake。分区代码中有重置功能。我可以知道如何雪花
SUM(1) OVER (PARTITION BY acct_id ORDER BY snap_dt RESET WHEN reset_flag = 1 ROWS UNBOUNDED PRECEDING)
您可以使用两个嵌套函数重写它:
SELECT ...
ROW_NUMBER()
OVER (PARTITION BY acct_id, new_part -- add new_part to the existing partition
ORDER BY snap_dt
ROWS UNBOUNDED PRECEDING)
FROM
(
SELECT -- returns the same value for all rows within a group
SUM(CASE WHEN reset_flag = 1 THEN 1 ELSE 0 END)
OVER (PARTITION BY acct_id
ORDER BY snap_dt
ROWS UNBOUNDED PRECEDING) AS new_part
...
) AS dt