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

如何修改SQL将单日查询扩展为日期范围 统计5月每日销售额

修改方案

你原查询硬编码了单日的时间范围做统计,要实现2022年5月整月按日统计销售额,只需要先构造5月全量日期序列,再关联销售表按日分组即可,修改后的SQL完全兼容你当前用的BigQuery环境,统计逻辑和原查询保持一致:

WITH may_calendar AS (
  SELECT
    calendar_date AS date_,
    TIMESTAMP(calendar_date) AS day_start_ts,
    TIMESTAMP(DATE_ADD(calendar_date, INTERVAL 1 DAY)) AS day_end_ts
  FROM UNNEST(
    GENERATE_DATE_ARRAY('2022-05-01', '2022-05-31', INTERVAL 1 DAY)
  ) AS calendar_date
)
SELECT
  FORMAT_DATE('%Y-%m-%d', mc.date_) AS date_,
  COUNT(s.salesId) AS `total-sales`
FROM may_calendar mc
LEFT JOIN `project1.sales.sales-growth` s
  ON (s.promoDate >= mc.day_start_ts AND s.promoDate < mc.day_end_ts)
  OR (s.purchaseDate >= mc.day_start_ts AND s.purchaseDate < mc.day_end_ts)
GROUP BY mc.date_
ORDER BY mc.date_;

改动说明

  • 用CTE生成2022年5月1日到31日的完整日期序列,预计算好每天UTC 0点的起止时间戳,不需要手动硬编码31天的日期值
  • 用左连接关联销售表,就算某天没有符合条件的销售记录,当天的统计行也不会丢失,无数据时total-sales会返回0
  • 时间匹配逻辑和原查询完全对齐:只要promoDate或purchaseDate落在当日的时间窗口内就算入当日统计,这里把原BETWEEN写法改成>= 起始 AND < 结束的区间判断,避免次日0点整的边界数据被前后两天重复统计
  • 最后按日期排序,输出的日期顺序和你期望的格式完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 20:01:20