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

BigQuery中按年月分组统计新冠病例数的问题排查

问题原因及修正方案

你的SQL统计结果错误主要源于两个核心问题:

1. 日期字段未做类型转换

你的date字段是字符串格式(值如01-01-2020),但FORMAT_DATE函数要求输入必须是DATE类型。直接传入字符串会导致BigQuery无法正确解析日期,分组后的年月维度混乱,最终求和结果出错。

必须先用PARSE_DATE函数将字符串转为DATE类型,再进行格式化。注意匹配你的日期格式:

  • 若日期是月-日-年(MM-DD-YYYY),解析格式用%m-%d-%Y
  • 若日期是日-月-年(DD-MM-YYYY),解析格式用%d-%m-%Y

2. 使用了中文单引号

SQL语法仅支持英文单引号,你代码里的‘%b-%Y’、‘case_count’、‘United States’都是中文单引号,这会导致BigQuery无法正确识别常量和别名,引发语法错误或解析异常。


修正后的完整SQL

假设你的日期格式为MM-DD-YYYY(月-日-年):

SELECT
  Continent,
  Location,
  FORMAT_DATE('%b-%Y', PARSE_DATE('%m-%d-%Y', date)) AS Mon_Year,
  SUM(new_cases) AS case_count
FROM
  covid_cases
WHERE
  Continent = 'United States'
GROUP BY
  Continent,
  Location,
  Mon_Year

如果是DD-MM-YYYY(日-月-年)格式,只需将PARSE_DATE的参数改为'%d-%m-%Y'即可。

执行该语句后,就能得到按大洲、地区、年月正确分组的病例统计总数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 17:01:18