【发布时间】:2020-10-02 20:31:00
【问题描述】:
情况是这样的。我的团队以每月一次的分辨率预测销售和收入数字,但希望所有报告都以每日一次的分辨率进行。所以我正在做的是摄取这些数字并将每月目标除以天数并将其保存在表格中。 所以我从这样的事情开始:
| date | forecasted_units | forecasted_revenue |
|---------|------------------|--------------------|
| 2020-01 | 372 | 9300 |
| 2020-02 | 435 | 9280 |
...
我的目标表现在看起来像这样:
| date | forecasted_units | forecasted_revenue |
|------------|------------------|--------------------|
| 2020-01-01 | 12 | 300 |
| 2020-01-02 | 12 | 300 |
| 2020-01-03 | 12 | 300 |
...
| date | forecasted_units | forecasted_revenue |
|------------|------------------|--------------------|
| 2020-02-01 | 15 | 320 |
| 2020-02-02 | 15 | 320 |
| 2020-02-03 | 15 | 320 |
...
现在我的表比上面的要宽很多,而且所有的表都有重复的记录。如您所见,存在大量数据冗余。现在我的问题是,有没有一种更有效的方法可以将相同分辨率的数据保存在一个表中。
我的直接想法是重塑表格以包含开始日期和结束日期,如下所示:
| start_date | end_date | forecasted_units | forecasted_revenue |
|------------|------------|------------------|--------------------|
| 2020-01-01 | 2020-01-31 | 12 | 300 |
| 2020-02-01 | 2020-02-29 | 15 | 320 |
但这会将所有计算卸载到生成所有报告的实例,因为它必须为开始日期和结束日期之间的每一天生成数据。
有没有更好的方法来做到这一点?
【问题讨论】:
标签: sql date amazon-redshift window-functions recursive-query