【发布时间】:2021-11-18 18:13:15
【问题描述】:
我每天都有客户余额数据,BigQuery 中的结构如下:
CREATE TABLE if not EXISTS balance (
user_id int,
updated_ag DATE,
value float
);
INSERT INTO balance VALUES
(1, '2021-01-01', 0),
(1, '2021-01-02', 1),
(1, '2021-01-05', 2),
(1, '2021-01-07', 5),
(2, '2021-01-01', 5),
(2, '2021-01-03', 0),
(2, '2021-01-04', 1),
(2, '2021-01-06', 2);
如果当天的余额发生变化,我会在某一天为用户保留一行。
我想通过将最后一天的余额放在有更新的地方来完成每个用户的数据,日期介于有余额的第一天和表中的最后日期之间。
因此,此示例中的输出表将具有以下值:
(1, '2021-01-01', 0),
(1, '2021-01-02', 1),
(1, '2021-01-03', 1),
(1, '2021-01-04', 1),
(1, '2021-01-05', 2),
(1, '2021-01-06', 2),
(1, '2021-01-07', 5),
(2, '2021-01-01', 5),
(2, '2021-01-02', 5),
(2, '2021-01-03', 0),
(2, '2021-01-04', 1),
(2, '2021-01-05', 1),
(2, '2021-01-06', 2),
(2, '2021-01-07', 2)
在 BigQuery 中执行此操作的最简单方法是什么?
【问题讨论】:
标签: sql google-bigquery