SUM值,或取最大值取SUM,取决于值

问题描述 投票:0回答:1

我有一个查询来选择一些运输成本,我想用一种特殊的方式来总结它们。

样本数据:

supplierID | articleID | sumUP | shippingCost
10         | 100       | 1     | 20
10         | 101       | 1     | 15
20         | 200       | 0     | 15
20         | 201       | 0     | 10
30         | 300       | 0     | 10
=============================================
Sum should be:                   60

我想实现的是汇总所有shippingCost值,但是由于sumUPsupplierID 20上的300,所以我只想获得这些供应商的最大值。

so

供应商10应具有35(值的总和)

供应商20应该有15(最大值)

供应商30应该有10(最大值)

总计应该为60。

我尝试了很多复杂的查询,但是当我以后想要决定求和或取最大和求和时,总是卡住。

使用mysql语句甚至可能吗? (当然是其中的子查询)。

任何建议如何解决这个问题?

mysql sql select sum max
1个回答
0
投票

使用case表达式返回SUM()MAX()

select supplierID,
       case when max(sumUP) = 1 then sum(shippingCost) else max(shippingCost) end
from tablename
grouo by supplierID
© www.soinside.com 2019 - 2024. All rights reserved.