SQL查询以汇总具有不同Where条件的独立列

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

SQL菜鸟在这里。我想使用2个单独的where条件分别求和两列。

ID  NAME    VALUE1   VALUE2
--- ------- -------  -------
1   Orange  5        30
2   Orange  11       30
3   Orange  7        15 
4   Pear    12       12 
5   Pear    13       25 
6   Pear    4        25 
  • 值大于10的VALUE1列的总和
  • [VALUE2列的总和,其中值> 20
  • 按名称分组

所需的输出:

NAME    VALUE1   VALUE2
------- -------  -------
Orange  11       60
Pear    25       50 

谢谢!

sql
2个回答
2
投票

使用条件聚合:

select name, sum(case when value1 > 10 then value1 end),
       sum(case when value2 > 20 then value2 end)
from t
group by name;

0
投票

我知道这种方法也有些棘手和冗长,但是,如果可以尝试,这可能对调试很有帮助:

select 
value1.name,value1.a,value2.b 
from 
(select sum(value1)a,name from test where value1 >10 group by name) as value1
join (select sum(value2)b,name from test where value2 >20 group by name) as value2
on value1.name = value2.name
© www.soinside.com 2019 - 2024. All rights reserved.