繁体   English   中英

仅当存在具有特殊条件的另一行时才求和字段

[英]sum field only if another row with a special condition exists

我有一个包含以下条目的表:

id customer amount kind
1  123      15     g
2  123      30     op
3  234      20     g
4  345      25     g
5  456      12     g
6  456      15     op

我想做的是将所有金额加为“ g”。

现在我要添加一个条件:

“只有当客户的另一个输入为'op'时,才将金额加起来。”

意味着在这种情况下,我的结果应该是27,而不是72。

添加此条件的好方法是什么?

谢谢!

为了获得每个客户的总和

select customer, sum(case when kind = 'g' then amount else 0 end) as c_sum
from your_table
group by customer
having sum(kind = 'op') > 0

得到总和

select sum(c_sum)
from 
(
    select customer, sum(case when kind = 'g' then amount else 0 end) as c_sum
    from your_table
    group by customer
    having sum(kind = 'op') > 0
) tmp

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM