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

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

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列)的升序对结果进行排序。
全部评论

相关推荐

最近和朋友聊天,她说了句让我震惊的话:"我发现我连周末点外卖都开始'最优解'了,一定要赶在高峰期前下单,不然就觉得自己亏了。"这不就是典型的"班味入侵"吗?工作思维已经渗透到生活的方方面面。
小型域名服务器:啊?我一直都这样啊?我还以为是我爱贪小便宜呢?每次去实验室都得接一杯免费的开水回去,出门都得规划一下最短路径,在宿舍就吃南边的食堂,在实验室就吃北边的食堂,快递只有顺路的时候才取。
点赞 评论 收藏
分享
10-27 17:26
东北大学 Java
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务