使用 BigQuery 中最后一个非缺失日的副本来估算缺失天数

Impute missing days with copy of last non-missing day in BigQuery

出于某种原因,我错过了在 bigquery 中摄取三天的数据 table。现在,我知道简单地从最后一个非缺失日复制数据并不是估算缺失数据的最佳方法,但就我的目的而言,这已经足够了。

我知道我可以复制缺失的最后一天,将 pandas 中的日期转换为 DATE + 1、DATE +2 等等,然后将该数据附加到原始 table 中大查询。但是,我宁愿避免这样做。有没有一种简单易行的方法可以直接在 bigquery 或数据表单中执行此操作?我不太喜欢 table 和 SQL。

感谢任何给定的建议。

您可以执行以下操作。该查询不言自明,但这里有一些详细信息:

  • 使用 DATE_ADD()DATE_SUB() 修改数据 returned 并筛选要从中复制的日期。

  • 多次使用联合 return 单个 table 不同的修改和过滤器

  • 按如下所述使用插入将检索到的数据插入 table。

  • 在 运行 插入之前,运行 只有选择和联合来检查那是否是你想要的数据

  • 我已经 return编辑了 1、2 和 3 天前的数据 (date_col = DATE_SUB(CURRENT_DATE(), interval 2 DAY)) 并在 if 日期字段中添加了 1 天。

INSERT INTO `<p>.<ds>.<t>` (date_col, data)  (
    SELECT DATE_ADD(date_col, INTERVAL 1 DAY) as date, data FROM `<p>.<ds>.<t>` where date_col =  DATE_SUB(CURRENT_DATE(), interval 1 DAY)
    UNION ALL
    SELECT DATE_ADD(date_col, INTERVAL 1 DAY) as date, data FROM `<p>.<ds>.<t>` where date_col =  DATE_SUB(CURRENT_DATE(), interval 2 DAY)
    UNION ALL
    SELECT DATE_ADD(date_col, INTERVAL 1 DAY) as date, data FROM `<p>.<ds>.<t>` where date_col =  DATE_SUB(CURRENT_DATE(), interval 3 DAY)

)