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
所需的输出:
NAME VALUE1 VALUE2
------- ------- -------
Orange 11 60
Pear 25 50
谢谢!
使用条件聚合:
select name, sum(case when value1 > 10 then value1 end),
sum(case when value2 > 20 then value2 end)
from t
group by name;
我知道这种方法也有些棘手和冗长,但是,如果可以尝试,这可能对调试很有帮助:
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