【发布时间】:2013-05-22 11:19:07
【问题描述】:
我有两张表,记录如下:
客户:
cid | cname | ccountry
-----------------------
1 | John | Australia
2 | Mark | USA
3 | Liz | England
订单:
oid | cid | oquantity
---------------------
1 | 1 | 100
2 | 1 | 100
3 | 2 | 50
4 | 2 | 150
5 | 3 | 50
6 | 3 | 100
我需要找出订单数量最多的客户名称。我运行以下查询并得到了正确的结果。
select cname, ccountry
from Clients
where cid in
(select cid
from Orders
group by cid
having sum(oquantity) = (select max(amount) from
(select sum(oquantity) amount
from Orders
group by cid)t1))
返回 2 行
“约翰”,“澳大利亚”
'马克','美国'
但我只需要知道,是否可以通过更简单的方式完成。一旦还要求退还全部数量,就变得复杂了。
【问题讨论】: