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

GBQ SQL如何提取整数型日期部分 实现按年/月统计营收总额

Google BigQuery 按年月统计营收解决方案

你存储日期的int字段格式为YYYYMMDD,可以通过以下两种方式快速实现批量按年、月维度聚合营收,无需每月调整查询条件:


方法1:直接用数值运算提取年月(性能最优)

利用数值计算直接截取对应位数,无需类型转换,查询速度最快:

SELECT
  DIV(date, 10000) AS year, -- 除以10000取整得到前4位年份
  MOD(DIV(date, 100), 100) AS month, -- 先除以100取整得到前6位,再对100取模得到2位月份
  SUM(revenue) AS total_revenue
FROM revenue.table
GROUP BY year, month
ORDER BY year DESC, month DESC -- 按时间倒序排列,可根据需要调整

如果需要过滤特定时间范围,只需在WHERE子句中添加对应条件即可,比如统计2020-2022年的数据:

WHERE date BETWEEN 20200101 AND 20221231

方法2:转换为日期类型后提取(兼容性更强)

如果后续需要做更多日期相关运算(比如按周、季度统计,或者计算日期差),可以先将int类型的日期转换为标准DATE类型再操作:

SELECT
  EXTRACT(YEAR FROM PARSE_DATE('%Y%m%d', CAST(date AS STRING))) AS year,
  EXTRACT(MONTH FROM PARSE_DATE('%Y%m%d', CAST(date AS STRING))) AS month,
  SUM(revenue) AS total_revenue
FROM revenue.table
GROUP BY year, month
ORDER BY year DESC, month DESC

如果需要输出YYYY-MM格式的年月字符串,可以调整SELECT部分:

FORMAT_DATE('%Y-%m', PARSE_DATE('%Y%m%d', CAST(date AS STRING))) AS year_month

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 08:09:03