【发布时间】:2020-10-27 09:38:05
【问题描述】:
我有一张这样的桌子:
order_id start_date end_date amount corrected_amount
1 2020-01-01 2020-01-31 100 95
1 2020-02-01 2020-02-28 200 200
1 2020-03-01 2020-03-30 100 100
1 2020-10-01 2020-11-25 200 95
2 2020-01-01 2020-05-30 500 250
3 2020-01-01 2020-12-31 400 5
我正在尝试创建一个查询以将其聚合到一个较小的表中,每个 order_id 只有一行,我需要使用一些我在实施时遇到问题的规则将其汇总在一起。
如果只存在一个条目,例如 id 2 和 3,那么我只想返回 order_id start_date、end_date 和金额列中的值
如果存在多个条目,例如 for 1,那么我想返回 order_id、最小 start_date、最大 end_date,并且对于每个“低于”今天日期的 end_date,我想总结corrected_amounts 和还要将此添加到 end_date 比今天“更大”的金额中。
所以对于上面的表格,结果应该是这样的
order_id start_date end_date amount
1 2020-01-01 2020-11-25 595
2 2020-01-01 2020-05-30 500
3 2020-01-01 2020-12-31 400
【问题讨论】:
标签: google-bigquery