如何在 Google Bigquery 的单行日期中拆分 GENERATE_DATE_ARRAY 以创建日期视图?

How to split the GENERATE_DATE_ARRAY in a date for a single row in Google Bigquery to create a date view?

我正在尝试使用 Google Bigquery 中另一个 table 的日期的最小值和最大值来创建日期视图。我遇到了 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