generate_series 相当于雪花

generate_series equivalent in snowflake

我习惯了 Postgres,在计算 MRR 和 ARR 时我会使用这个的某个版本:

date_trunc('day',transaction_date) + interval '1' month * generate_series(0,11)

我一直无法在 Snowflake 中找到类似的语法。我看到的大部分内容类似于 date_dimensions table,但我需要能够每个月创建虚拟账单日期并将部分交易应用于每个日期。

例如,如果在 3 月 29 日购买了 1,000 美元的年度订阅,那么我将为接下来的 12 个月(4/29、5/29、6/29 等)创建相应的账单日期1000/12 值。

我看过有关生成器和 seq4() 的文档,但很难将其应用到我需要的东西上。

谢谢。

使用GENERATOR and DATEADD

SELECT DATEADD(MONTH, (ROW_NUMBER() OVER(ORDER BY seq8())-1),
               DATE_TRUNC('day',transaction_date))
FROM tab
,TABLE(GENERATOR(ROWCOUNT => 12));

输出: