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

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

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

select c.cust_name,o.order_num,sum(OI.quantity*OI.item_price) OrderTatal from Customers c left join Orders o on c.cust_id=o.cust_id join OrderItems OI on o.order_num=OI.order_num group by c.cust_name,o.order_num order by c.cust_name,o.order_num;

在需要同时返回顾客名称和订单号时,需要考虑一个用户有多个订单的情况。

解决方案:

group by c.cust_name,o.order_num用两个字段进行分组,主要排除当一个用户有多个订单的情况,先按用户姓名分组,当用户名相同时,就按订单号来分组计算,即

假设顾客姓名 订单号 订单单价 订单数量

a 001 1 12

a 002 2 20

b 003 3 30

c 004 4 16

使用group by c.cust_name,o.order_num之后,结果应当是

假设顾客姓名 订单号 订单总价

a 001 12

a 002 40

b 003 90

c 004 64

全部评论
group by多个字段用法,参考https://www.zhihu.com/tardis/zm/art/640332429?source_id=1005
点赞 回复 分享
发布于 2024-04-02 16:16 上海

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务