如何使用现有时间戳在BigQuery中生成一个unnested数组

时间:2018-04-20 14:37:48

标签: sql-server google-bigquery

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

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 个答案:

答案 0 :(得分: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