选择在两个客户的情况下订购了最多数量产品的客户

时间:2017-01-11 07:34:38

标签: mysql sql

我有以下ORDERS表

enter image description here

我知道查询以选择订购量最大的客户。但是,如果说两个客户的数量相同,它将如何运作。我应该写什么查询来向客户展示?

3 个答案:

答案 0 :(得分:1)

您可以使用子查询来检查给定记录的数量是否与表中观察到的最大数量相匹配:

SELECT *
FROM yourTable
WHERE qty = (SELECT MAX(qty) FROM yourTable)

如果有多个客户分享最大数量,则会返回多条记录。

如果您只想获得一条记录,即使存在关联,也可以使用此方法:

SELECT *
FROM yourTable
ORDER BY qty DESC
LIMIT 1

答案 1 :(得分:0)

我认为你需要每个数量的数量。

如果是这样,你可以尝试:

select custNum,
    sum(qty) as qty
  from Orders 
  group by custNum
  order by sum(qty) desc;

小提琴:

http://sqlfiddle.com/#!9/47931b/10

答案 2 :(得分:0)

SELECT custnum,sum(qty) as total
FROM orders
group by custnum
having sum(qty) = (SELECT MAX(qty) FROM orders);

这将返回两个值。