作为计算字段使用子查询
可以按照以下步骤完成:
(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分组计算圆括号里的和。