You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在BigQuery中将日期范围展开为行(数据集含历史数据)

BigQuery中展开日期范围为单独行的方法

当然可以实现,用BigQuery的GENERATE_DATE_ARRAY函数生成日期序列,再配合UNNEST把数组拆成单独行即可。

示例输入数据

假设你的表名为your_table,结构和数据如下:

Itemidstart_dateend_date
A2021-07-022021-09-01
B2021-06-012021-06-03

实现SQL

SELECT
  Itemid,
  date
FROM
  your_table,
  UNNEST(GENERATE_DATE_ARRAY(start_date, end_date, INTERVAL 1 DAY)) AS date

说明

  • GENERATE_DATE_ARRAY(start_date, end_date, INTERVAL 1 DAY):根据起始和结束日期生成包含每天日期的数组,步长为1天。
  • UNNEST(...) AS date:把生成的日期数组拆成单独的行,每行对应一个日期。
  • 这里用逗号分隔主表和UNNEST,相当于隐式的CROSS JOIN,会把每个Itemid对应的日期数组都展开。

执行后就能得到你期望的输出:每个Itemid对应日期范围内的每一天,逐行展示。

内容的提问来源于stack exchange,提问作者Consuela

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 16:41:31