如何使用现有时间戳在 BigQuery 中生成未嵌套的数组

Posted

技术标签:

【中文标题】如何使用现有时间戳在 BigQuery 中生成未嵌套的数组【英文标题】:How to generate an unnested array in BigQuery using existing timestamp 【发布时间】:2018-04-20 14:37:47 【问题描述】:

我想接受这个查询(对我有用):

SELECT(DATE_ADD(DATE(CURRENT_TIMESTAMP()), INTERVAL 1* n MONTH)) as date
FROM UNNEST(GENERATE_ARRAY(0,12,1)) n

并将CURRENT_TIMESTAMP() 替换为现有表中的start_date 时间戳字段。

换句话说,我想为从start_date 开始的合同创建一个“有效月份”列表。

我对如何合并另一个 FROM 子句感到困惑!

【问题讨论】:

【参考方案1】:

这应该可行:

SELECT(DATE_ADD(DATE(start_date), INTERVAL 1* n MONTH)) as date
FROM ExistingTable, UNNEST(GENERATE_ARRAY(0,12,1)) n

如果您在现有表中恰好有一行表示开始日期,则可以使用子选择:

SELECT(DATE_ADD(DATE((SELECT start_date FROM ExistingTable)), INTERVAL 1* n MONTH)) as date
FROM UNNEST(GENERATE_ARRAY(0,12,1)) n

【讨论】:

如果答案对您有用,请接受/投票。见***.com/help/someone-answers

以上是关于如何使用现有时间戳在 BigQuery 中生成未嵌套的数组的主要内容,如果未能解决你的问题,请参考以下文章

如何根据 Big Query 中的 UTC 时间戳在 Data Studio 中显示本地时区的日期/时间

在 BigQuery 中生成一列随机日期

如何在 BigQuery 中生成日期系列并为缺失的销售数据填充零

BigQuery:如何使用传输 API 将文件从 GCS 加载到现有表?

如何使用 bigquery 流向现有记录插入嵌套数据

Python/Pandas/BigQuery:如何使用大量新的时间序列数据有效地更新现有表?