Big Query - 增量更新累积列

问题描述 投票:0回答:0

我遇到了这个问题:我在 BigQuery 中有一个表,其中包含列“day、person_id、daily_margin、running_margin_30d 和 total_accumulated_margin”。 我的问题是现在该表变得太大而无法每天运行(我删除并重新创建它)但现在它消耗了太多内存。我一直在尝试使用 MERGE 语句使其增量更新,但我不知道如何计算累积列(历史上和过去 30 天)。

例如,如果有一天我运行它,我会得到(最后两列为空,因为我只获取每日数据):

person_id daily_margin running_margin_30d total_accumulated_margin
1月2日 17 5

假设历史表的最后一行是

person_id daily_margin running_margin_30d total_accumulated_margin
1月1日 17 2 15 40

然后我需要更新的历史表在 MERGE 之后看起来像这样:

person_id daily_margin running_margin_30d total_accumulated_margin
1月2日 17 5 20 45

所以我们将新的daily_margin行与历史running_margin_30dtotal_accumulated_margin相加。

sql database google-bigquery common-table-expression
© www.soinside.com 2019 - 2024. All rights reserved.