gpt4 book ai didi

mysql - 不同行的列总和

转载 作者:行者123 更新时间:2023-11-29 09:53:30 24 4
gpt4 key购买 nike

我有以下 MySQL 表结构

 id          product_id    order_id   order_shipping   shipping_code
1 23 1 2.00 GB
2 12 1 2.00 GB
3 5 2 3.50 GB
4 6 2 3.50 GB
5 34 3 3.00 FR
6 8 3 3.00 FR
7 4 4 5.00 IN

我想按 shipping_code 对行进行分组,并包含总订单数和每个代码的总运费。像这样的事情:

Code    Orders   Cost
GB 2 5.50
FR 1 3.00
IN 1 5.00

我正在为总成本部分而苦苦挣扎。运费是整个订单的运费,而不是产品的运费。它只是在与同一订单相关的每一行中重复。因此,对于 1 号订单,运费为 2 英镑,而不是 4 英镑。

如何对该列求和,但仅针对不同的订单行?

最佳答案

要解决每个订单的重复运费问题,您需要先按 order_id 对数据进行分组,然后COUNT 订单数量并 SUM 运费:

SELECT code, COUNT(o.shipping) AS orders, SUM(o.shipping) AS cost
FROM (SELECT MIN(shipping_code) AS code, MIN(order_shipping) AS shipping
FROM orders
GROUP BY order_id) o
GROUP BY code

输出:

code    orders  cost
GB 2 5.5
FR 1 3
IN 1 5

Demo on dbfiddle

关于mysql - 不同行的列总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54337208/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com