SQL - 分组带有LIMIT或TOP

时间:2018-05-02 19:08:43

标签: sql

我有一个简单的选择查询,它返回按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

我希望从该结果得到的只是前五名的结果。我对SQL并不是很擅长,所以我很难通过玩弄它来找到如何做到这一点,也不确定如何用它来搜索谷歌搜索。如果有人能提供帮助那就太棒了。

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

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

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

2 个答案:

答案 0 :(得分:0)

在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

答案 1 :(得分:0)

ANSI SQL

中有OFFSET FETCH
SELECT CustomerName, SaleAmount
FROM your_table
ORDER BY SaleAmount 
OFFSET 0 ROWS 
FETCH NEXT 5 ROWS ONLY
相关问题