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

GROUP BY查询中执行字段除法运算报not a GROUP BY expression错误

报错原因

  • GROUP BY 子句使用了UPPER(healthDistrict)作为分组依据,但 SELECT 子句直接引用了未做大写转换的healthDistrict,二者不属于同一分组维度,数据库无法识别匹配。
  • SELECT 列表中的numHospitalizations、numCases、numDeaths字段既没有加入GROUP BY子句,也没有使用聚合函数包裹,不符合分组查询的语法要求:所有不在GROUP BY中的非聚合字段,都无法直接在SELECT中返回。

正确写法

如果你需要计算每个行政区的总体住院/死亡百分比,应该先对分组内的指标做聚合汇总,再做除法计算,示例代码如下:

SELECT UPPER(healthDistrict) AS HEALTH_DISTRICT,
       SUM(numHospitalizations) * 100.0 / NULLIF(SUM(numCases), 0) AS PERCENTHOSP,
       SUM(numDeaths) * 100.0 / NULLIF(SUM(numCases), 0) AS PERCENTDEATH
FROM CovidReport
GROUP BY UPPER(healthDistrict);

说明

  • 用SUM()聚合函数汇总每个行政区的总住院数、总病例数、总死亡数,符合分组查询语法要求
  • 加入NULLIF避免部分区域无病例时出现除以0的报错
  • 乘以100.0是为了将结果转换为百分比格式,如果不需要百分比可以去掉

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:39:00