SQL分组统计疑问:查询城市患者数仅返回一行结果的原因
按城市统计患者数量:问题原因与修复方案
你的查询仅返回一行结果的核心原因是缺少GROUP BY子句:
- 当你在
SELECT中同时列出非聚合字段(city)和聚合函数(count(*))时,SQL会将整个表视为一个单一分组进行计算,最终只返回一行汇总数据——这里的Barrie是结果集中随机选取的一个城市值,而count是所有患者的总数量。 - 若要按每个城市分组统计,必须明确指定分组依据。
正确的查询语句
SELECT city, COUNT(*) AS count FROM patients GROUP BY city;
这条语句会将patients表按city字段分组,对每个分组内的行数进行计数,最终返回每个城市对应的患者数量,每个城市占一行。
内容的提问来源于stack exchange,提问作者Diogo
相关产品推荐
相关产品推荐

