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



我正在尝试使用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

最新更新