【发布时间】:2021-12-08 18:19:18
【问题描述】:
我试图将 numHospitalizations 除以 numCases 以获得住院百分比,将 numDeaths 除以 numCases 以获得死亡百分比。有很多重复的卫生区,所以我认为最好按 healthDistrict 分组,但我不断得到:
不是 GROUP BY 表达式。
SELECT healthDistrict AS HEALTH_DISTRICT
, (numHospitalizations / numCases) AS PERCENTHOSP
, (numDeaths / numCases) AS PERCENTDEATH
FROM CovidReport
GROUP BY UPPER(healthDistrict);
【问题讨论】:
-
您确定您使用的是 SQL Server 吗?您是否在 SSMS 中使用某些查询设计器或其他一些 UI 工具来设计查询? “不是按表达式分组”不是 SQL Server 错误消息,也许您可以发布整个消息?此外,如果您的列是
int或类似的,SQL Server 使用整数数学,例如10/7 = 1和7/10 = 0。因此,您还需要在每个表达式的某处执行十进制转换。 -
另外,请显示一些示例数据和所需的结果,以便我们知道您想要什么。从查询中,我无法从
'my district', 200, 126, 12和'my district', 170, 112, 14中看出您想要什么答案。你想要平均值超过总和,超过最大值,还是别的?
标签: sql sql-server tsql group-by