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

使用MAX()聚合函数时如何仅返回人口最高的单条县数据

问题原因

你原来的SQL语句中使用了GROUP BY Name,数据库会先将全表数据按县名Name进行分组,再针对每个分组单独计算最大人口,最终自然会返回每个县对应的最大人口记录,和你要的全表全局最大值需求不符。

正确写法

这里提供两种常用方案,你可以根据使用的数据库类型和实际需求选择:

方案1:排序后取第一条

实现逻辑最简单,直接按人口倒序排序,取排在最前面的第一条记录即可:

  • MySQL、PostgreSQL、SQLite 环境使用:
SELECT Name, Population
FROM County
ORDER BY Population DESC
LIMIT 1;
  • SQL Server、Access 环境使用:
SELECT TOP 1 Name, Population
FROM County
ORDER BY Population DESC;
  • Oracle 环境使用:
SELECT Name, Population
FROM County
ORDER BY Population DESC
FETCH FIRST 1 ROW ONLY;

注意:如果存在多个县人口同为全表最高值,该方案只会返回排序后匹配到的第一条记录。

方案2:子查询匹配全局最大值

完全符合SQL标准,兼容所有数据库,还可以返回所有人口等于全局最大值的县:

SELECT Name, Population
FROM County
WHERE Population = (SELECT MAX(Population) FROM County);

注意:如果存在多个县人口同为全表最高值,该方案会返回所有符合条件的记录。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 21:24:06