【发布时间】:2017-10-10 08:52:20
【问题描述】:
我有下表, 显示在不同日期有多少来自不同单位的商品进入库存。
ID Date Unit Quantity
---------------------------------
1 2017-08-01 A_red 05
2 2017-08-13 A_red 10
3 2017-09-20 A_red 20
4 2017-09-22 A_red 40
5 2017-10-05 A_red 40
6 2017-10-25 A_red 30
7 2017-10-24 A_blue 60
问题是:同一单元30天时间间隔内的条目要分组。
所以我想要以下结果:
ID Date Unit Quantity fst_entry30 Quantity30
-----------------------------------------------------
1 2017-08-01 A_red 05 T 15
2 2017-08-13 A_red 10 F 15
3 2017-09-20 A_red 20 T 100
4 2017-09-22 A_red 40 F 100
5 2017-10-05 A_red 40 F 100
6 2017-10-25 A_red 30 T 30
7 2017-10-24 A_blue 60 T 60
其中 fst_entry30 是一个标志,指示该条目是否是该单元在过去 30 天内的第一个条目。请注意,如果我有不同的单位(A_blue 而不是 A_red),它将不会被分组。
数量30是数量的分组总和。
比如 10 月 5 日到 9 月 20 日之间的天数不足 30 天,所以进行了分组。
记住 Redshift 不允许递归公用表表达式。 我已经尝试过自联接,但结果很麻烦。
【问题讨论】:
-
你有日期表吗?
-
是的,我愿意@VamsiPrabhala
-
未来 Redshift 会使用适合 Postgres 的 SQL,但这些除外:docs.aws.amazon.com/redshift/latest/dg/…
标签: sql amazon-redshift recursive-query