我想知道哪位顾客购买了最多的商品总数,没有日期范围
这些是我的专栏:
customers.customerid
orders.orderid
orderdetails.productid
orderdetails.quantity
但我被困在这里:
从订单中选择*返回196条记录。
从订单中选择不同的customerid返回74条记录,这意味着74'不同'客户下订单
如何完成此操作?
答案 0 :(得分:0)
首先,找出每个客户订购的商品数量。为此,您必须加入订单明细和订单表:
select o.customerid, sum(od.quantity) as nbr_items
from orderdetail od
inner join orders o
on o.orderid = od.orderid
group by o.customerid
但是,如果您也需要客户名称,那么您也必须加入客户表:
select o.customerid, sum(od.quantity) as nbr_items
from orderdetail od
inner join orders o
on o.orderid = od.orderid
inner join customer c
on c.customerid = o.customerid
group by o.customerid
但是,当然,你专门向客户询问了最多的项目数量,所以按总数减少排序:
select o.customerid, sum(od.quantity) as nbr_items
from orderdetail od
inner join orders o
on o.orderid = od.orderid
inner join customer c
on c.customerid = o.customerid
group by o.customerid
order by 2 DESC
使用TOP N功能只获得第一个:
select top 1 o.customerid, sum(od.quantity) as nbr_items
from orderdetail od
inner join orders o
on o.orderid = od.orderid
inner join customer c
on c.customerid = o.customerid
group by o.customerid
order by 2 DESC