首页 > 解决方案 > SQL - 按 LIMIT 或 TOP 分组

问题描述

我有一个简单的选择查询,它返回按 CustomerName 分组的 SaleAmount 的摘要。

以下是查询结果的示例:

Customer Name | SaleAmount (in millions)
-----------------------------------------
John Doe - 10.5
Jane Doe - 8
Don Johnson - 7
Bill Joel - 6
Ron Swanson - 5
Bret Faker - 4
Johnny Apple - 3
El Merfud - 2

然后我想从该结果中得到的只是前 5 个结果。我对 SQL 不是很好,所以我很难通过玩弄它来找到如何做到这一点,也不知道如何为谷歌搜索用词。如果有人可以提供帮助,那就太棒了。

编辑:这是获得上面结果的 SQL 查询。

SELECT customer.FullName, SUM(sale.SalesAmount)
FROM sale
LEFT JOIN customer
    ON customer.id = sale.customerid
GROUP BY customer.FullName

所以它实际上是从销售表中拉出来并加入客户。我只想从该查询中获取前 5 个结果。我应该更具体。

标签: sql

解决方案


在 SQL Server 或 MS Access 中:

SELECT TOP 5 CustomerName, SaleAmount
FROM yourTable
ORDER BY SaleAmount DESC

在 MySQL 中:

SELECT CustomerName, SaleAmount
FROM yourTable
ORDER BY SaleAmount DESC
LIMIT 5

推荐阅读