值列表的 BigQUery 重复日期数组

Posted

技术标签:

【中文标题】值列表的 BigQUery 重复日期数组【英文标题】:BigQUery repeating date array for a list of values 【发布时间】:2021-03-10 15:25:58 【问题描述】:

在 Bigquery 中,我正在尝试为合作伙伴列表生成一个表格,其中包含显示年份/季度的重复数组。理想情况下,这将是一个持续的工作表,允许我随着时间的推移更新和添加额外的季度。

Partner          Year    Quarter
---------        -----   --------
Partner 1        2021    Q1
                 2021    Q2
partner 2        2021    Q1
                 2021    Q2

到目前为止,我已经尝试使用“生成日期数组”来给出季度的第一天,然后将其添加到季度和年份。但是我得到的只是

With dates as (SELECT
Generate_date_array('2021-01-01', '2021-04-01',INTERVAL 1 QUARTER)as YQ)
Select
["Partner 1","Partner 2"] as partners,
YQ
FROM dates 

但是这只给了我两行

Partner          Date 
---------        ----------
Partner 1        2021-01-01
partner 2        2021-04-01

任何建议都非常感谢。

【问题讨论】:

【参考方案1】:

考虑下面

with dates as (
  select extract(year from date) year,
    'Q' || extract(quarter from date) quarter 
  from unnest(generate_date_array('2021-01-01', '2021-12-31',interval 1 quarter)) as date
), partners as (
 select partner from unnest(["Partner 1","Partner 2"]) as partner
) 
select partner,
  array_agg(struct(year, quarter)) calendar
from partners, dates
group by partner    

有输出

【讨论】:

以上是关于值列表的 BigQUery 重复日期数组的主要内容,如果未能解决你的问题,请参考以下文章

sql [BigQuery - Facebook产品目录]查询para obtenerelcatálogodeproductos de Kichink。 #facebook #bigqu

用于读取记录数组的 BigQuery Java API:“不支持按名称检索字段值”异常

按最近日期加入 BigQuery 中具有重复记录的表

用于合并值列表/数组的 BigQuery JavaScript UDF

选择数组包含 bigquery 中多个值之一的行(最好使用 dbplyr)

Spark BigQuery 连接器:写入 ARRAY 类型会导致异常:“”无效值:ARRAY 不是有效值“”