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

SQL分组查询(Group By)如何获取TOP 5结果?

嘿,这事儿简单!你已经有了分组汇总的查询,要取前5条的话,不同数据库的语法稍微有点不一样,我给你列几个常用的情况,你对着自己用的数据库选就行:

首先,先确认下你原来的基础查询大概是这样的(把你的表名换成实际的表名就行):

SELECT CustomerName, SUM(SaleAmount) AS `销售额(单位:百万)`
FROM 你的表名
GROUP BY CustomerName

接下来加限制条件:

如果你用的是 MySQL、MariaDB 或者 PostgreSQL

直接在末尾加LIMIT 5,另外建议加上排序——不然“前5条”的顺序是随机的,一般咱们都想拿销售额最高的前5个对吧?所以加上ORDER BY:

SELECT CustomerName, SUM(SaleAmount) AS `销售额(单位:百万)`
FROM 你的表名
GROUP BY CustomerName
ORDER BY `销售额(单位:百万)` DESC  -- DESC表示从高到低排序,去掉就是从低到高
LIMIT 5;

如果你用的是 SQL Server

用TOP 5放在SELECT后面就行,同样记得加排序:

SELECT TOP 5 CustomerName, SUM(SaleAmount) AS [销售额(单位:百万)]
FROM 你的表名
GROUP BY CustomerName
ORDER BY [销售额(单位:百万)] DESC;

如果你用的是 Oracle 12c 及以上版本

用FETCH FIRST 5 ROWS ONLY,排序也不能少:

SELECT CustomerName, SUM(SaleAmount) AS "销售额(单位:百万)"
FROM 你的表名
GROUP BY CustomerName
ORDER BY "销售额(单位:百万)" DESC
FETCH FIRST 5 ROWS ONLY;

要是你用的是其他小众数据库,告诉我一声我再给你调整~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:27:20