SQL94 返回每个顾客不同订单的总金额

返回每个顾客不同订单的总金额_牛客题霸_牛客网 (nowcoder.com)icon-default.png?t=M85Bhttps://www.nowcoder.com/practice/ce313253a81c4947b20e801cd4da7894?tpId=298&tqId=2374691&ru=/exam/oj&qru=/ta/sql-teach-yourself/question-ranking&sourceUrl=%2Fexam%2Foj%3Fpage%3D1%26tab%3DSQL%25E7%25AF%2587%26topicId%3D298

首先根据OrderItems表可以计算每个order_num订购的总金额,题目让求每个顾客的订单总数 

每个顾客可能有好几个 order_num,我们要求这些的和,怎么办?

join就好

select 
    cust_id,
    sum(total) as total_ordered
from Orders 
join (select 
        order_num,
        sum(item_price*quantity) as total
from OrderItems
group by order_num) oi using(order_num)
group by cust_id
having total_ordered
order by total_ordered desc

还有一种写法 select使用自连接

select
  cust_id,
  (
    select
      SUM(item_price * quantity)
    FROM
      OrderItems a
    WHERE
      a.order_num = b.order_num
  ) total_ordered
from
  Orders b
ORDER BY total_ordered DESC

猜测,应该是,对b表中的每一个顾客,去看她的order_num,相等就计算,猜的,不知道对不对

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值