题解 | #返回顾客名称和相关订单号以及每个订单的总价#

返回顾客名称和相关订单号以及每个订单的总价

https://www.nowcoder.com/practice/4dda66e385c443d8a11570a70807d250

select
    t1.cust_name,
    t2.order_num,
    sum(t3.quantity * t3.item_price) as OrderTotal
from
    Customers t1,
    Orders t2,
    OrderItems t3
    where t1.cust_id = t2.cust_id and t2.order_num	= t3.order_num	

    group by cust_name,order_num

    order by 1,2
  1. FROM子句中使用了三个表的别名,分别是"t1"(代表"Customers"表)、"t2"(代表"Orders"表)和"t3"(代表"OrderItems"表)。使用别名可以简化查询语句,并使其更易读。
  2. WHERE子句用于指定连接条件,将"Customers"表的"cust_id"与"Orders"表的"cust_id"以及"Orders"表的"order_num"与"OrderItems"表的"order_num"进行连接。这样,"Customers"表、"Orders"表和"OrderItems"表之间建立了关联,从而能够一起检索相关数据。
  3. GROUP BY子句用于对结果进行分组,按照"cust_name"和"order_num"列对结果集进行分组。这样,每个客户("cust_name")的每个订单("order_num")将作为一个分组。
  4. 在SELECT子句中,使用SUM(t3.quantity * t3.item_price)来计算每个订单的总金额,即订单中各个产品的数量乘以单价之和,将其作为"OrderTotal"列。
  5. 最后,ORDER BY子句按照"cust_name"(第1列)和"order_num"(第2列)的升序对结果进行排序。
全部评论

相关推荐

我即大橘:耐泡王
点赞 评论 收藏
分享
头像
11-21 11:39
四川大学 Java
是红鸢啊:忘了还没结束,还有字节的5k 违约金
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务