我正在尝试使用Google Bigquery中另一个表中日期的最小值和最大值来创建日期视图。我遇到了GENERATE_DATE_ARRAY,并且能够在单个数组中创建我想要的日期。但是,将它们拆分为每行一个日期一直是困难的部分。
我尝试使用 UNNEST 来执行此操作,但是当我运行代码时,它只给了我第一个结果,所以我在这里错过了一些东西。
这是我用来生成数组的代码,但我坚持让它拆分出来:
SELECT GENERATE_DATE_ARRAY(
MIN(CAST(journaldate AS DATE)),
MAX(CAST(journaldate AS DATE))
)
AS Period
FROM
dataset.table
我想你想要:
SELECT Period
FROM (SELECT MIN(CAST(journaldate AS DATE)) as min_date,
MAX(CAST(journaldate AS DATE)) as max_date
FROM dataset.table
) t JOIN
UNNEST(GENERATE_DATE_ARRAY(t.min_date, t.max_date)) period
另一个版本是:
#standardSQL
SELECT period FROM UNNEST(
GENERATE_DATE_ARRAY(
(SELECT MIN(CAST(journaldate AS DATE)) FROM `project.dataset.table`),
(SELECT MAX(CAST(journaldate AS DATE)) FROM `project.dataset.table`)
)
) period