【发布时间】:2021-09-17 03:18:03
【问题描述】:
与How to fill missing dates in BigQuery?相关,但没有后向填充/前向填充:
假设我有以下销售数据:
order_date product store sales
_______________________________________________________
2021-05-01 1 1 10
2021-05-04 1 1 5
2021-04-25 1 2 3
2021-04-30 1 2 9
2021-05-10 1 2 1
2021-05-02 2 1 3
2021-05-04 2 1 3
我想要的输出是用 0 填充空日期,但在 product 和 store 上进行分区(而不是回填到全局 MIN(DATE) 或前向填充到全局 MAX(DATE):
order_date product store sales
_______________________________________________________
2021-05-01 1 1 10
2021-05-02 1 1 0
2021-05-03 1 1 0
2021-05-04 1 1 5
2021-04-25 1 2 3
2021-04-26 1 2 0
... ... ... ... (all 0s)
2021-04-29 1 2 0
2021-04-30 1 2 9
... ... ... ... (all 0s)
2021-05-10 1 2 1
2021-05-02 2 1 3
2021-05-03 2 1 0
2021-05-04 2 1 3
我将如何实现这一点(特别是在 BigQuery 中)?
我最初的想法是我可能需要创建一个类似的表
SELECT
product, store,
MIN(order_date) min_date,
MAX(order_date) max_date
FROM mydata
GROUP BY product, store
但我不确定如何使用它来对原始 mydata 表进行分区并用 IFNULL(sales,0) sales 填充日期之间的日期
提前致谢!
【问题讨论】:
-
不确定问题是什么!您可能想提供更多详细信息
-
所需的输出是一个类似的表,但对于任何特定的
store/product对,用 0 填充空日期以表示sales
标签: sql google-bigquery