作为计算字段使用子查询
可以按照以下步骤完成:
(1)从OrderItems表中按订单号(order_num)分组,将每个订单的总金额进行统计
(2)对于订单Orders表以顾客id(cust_id)分组,将顾客对应的订单总金额进行统计
首先,
SELECT sum(item_price*quantity) FROM OrderItems GROUP BY order_num;
如果要看的是订单编号order_num为a0003的总金额
SELECT sum(item_price*quantity) FROM OrderItems WHERE order_num = 'a0013' GROUP BY order_num;
为方便理解把订单号和总金额放在一起看
为了对每个客户的订单金额进行sum计算,应该把上面的作为子查询
SELECT cust_id, sum( ( SELECT SUM(item_price * quantity) FROM OrderItems WHERE OrderItems.order_num = Orders.order_num GROUP BY order_num ) ) AS total_ordered FROM Orders GROUP BY cust_id ORDER BY total_ordered DESC;
分析:这个SELECT语句对Orders表中每个客户返回2列:cust_id,total_ordered字段,其中total_ordered是一个计算字段,最外层的sum是根据cust_id分组计算圆括号里的和。

京公网安备 11010502036488号