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

BigQuery执行SUM函数报错:STRING类型不匹配,字段应为整数的问题排查

问题分析与解决办法

错误原因

  1. 字段类型问题:你的Number_of_People字段实际存储为STRING类型,而非整数。因为示例值如"3 748"包含空格(千位分隔符),这种带非数字字符的值无法被识别为INT64类型,导致SUM函数无法处理。
  2. 查询语法错误:原查询存在两处问题:
    • 表名末尾缺少闭合的反引号(`);
    • 使用HAVING子句错误,分组聚合应使用GROUP BY,HAVING仅用于聚合后的过滤。

修正后的查询语句

SELECT 
  District_Council_District, 
  SUM(SAFE_CAST(REPLACE(Number_of_People, ' ', '') AS INT64)) AS Total_People
FROM `absolute-vertex-356001.Opendata2.diff age male polulation distibution`
GROUP BY District_Council_District

关键修正点说明

  • REPLACE(Number_of_People, ' ', ''):去除字符串中的空格,将"3 748"转为"3748";
  • SAFE_CAST(...) AS INT64:将清理后的字符串安全转换为整数类型,SAFE_前缀确保遇到无效值时返回NULL而非直接报错;
  • GROUP BY District_Council_District:按行政区分组,确保SUM计算的是每个区的总人数;
  • 补充了表名末尾缺失的反引号,修复语法错误。

如果字段中存在其他非数字字符(如逗号、字母等),需要在REPLACE中额外处理,但根据你提供的示例数据,仅去除空格即可解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 21:45:36