SQL 题目汇总
2023-06-29 00:10:00

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

我们需要一个顾客 ID 列表,其中包含他们已订购的总金额。

OrderItems 表代表订单信息,OrderItems 表有订单号:order_num 和商品售出价格:item_price、商品数量:quantity

order_numitem_pricequantity
a000110105
a000211100
a00021200
a001321121
a0003510
a0003119
a000375
1
Orders` 表订单号:`order_num`、顾客 id:`cust_id
order_numcust_id
a0001cust10
a0002cust1
a0003cust1
a0013cust2

【问题】

编写 SQL 语句,返回顾客 ID(Orders 表中的 cust_id),并使用子查询返回 total_ordered 以便返回每个顾客的订单总数,将结果按金额从大到小排序。

1
2
3
4
5
6
select o.cust_id, count(o.order_num),sum(t.total)
from orders o, (select order_num, sum(item_price*quantity) total
FROM orderitems
GROUP BY order_num) t
where o.order_num = t.order_num
GROUP BY o.cust_id