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

如何在BigQuery中基于日期范围拆分数据生成每日行记录?

在BigQuery中拆分日期范围为每日记录

完全可以在BigQuery中实现这个需求,核心是利用GENERATE_DATE_ARRAY生成日期范围内的所有日期,再通过UNNEST将数组拆分为单行记录。

假设你的表名为employee_rules,字段为RuleFrom(DATE类型)、RuleTo(DATE类型)、Rules(STRING类型),可以使用以下SQL:

SELECT
  day AS RuleFrom,
  day AS RuleTo,
  Rules
FROM
  employee_rules,
  UNNEST(GENERATE_DATE_ARRAY(RuleFrom, RuleTo, INTERVAL 1 DAY)) AS day

代码说明

  • GENERATE_DATE_ARRAY(RuleFrom, RuleTo, INTERVAL 1 DAY):根据每条记录的起始和结束日期,生成包含该范围内所有日期的数组
  • UNNEST(...) AS day:将日期数组拆分为单独的行,每行对应一个日期
  • 把拆分后的day同时赋值给RuleFrom和RuleTo,保持Rules值不变

示例验证

针对你提供的示例数据(RuleFrom=2023-05-31,RuleTo=2023-06-06,Rules=10%),执行上述SQL后会输出你期望的结果:

RuleFrom        RuleTo        Rules
2023-05-31      2023-05-31      10%
2023-06-01      2023-06-01      10%
2023-06-02      2023-06-02      10%
2023-06-03      2023-06-03      10%
2023-06-04      2023-06-04      10%
2023-06-05      2023-06-05      10%
2023-06-06      2023-06-06      10%

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 19:12:46