select sum(flag3) from tb where flag=1
select sum(flag3) from tb where flag=1 and flag2=1
select sum(flag3) from tb where flag=1 and flag2=2就是查询3个情况的数据
select sum(flag3) from tb where flag=1 and flag2=1
select sum(flag3) from tb where flag=1 and flag2=2就是查询3个情况的数据
sum(case when flag=1 and flag2=1 then flag3 else 0 end) as sum2,
sum(case when flag=1 and flag2=2 then flag3 else 0 end) as sum3
from tb
sum(case when flag=1 then flag3 else 0 end) as sum1,
sum(case when flag=1 and flag2=1 then flag3 else 0 end) as sum2,
sum(case when flag=1 and flag2=2 then flag3 else 0 end) as sum3
from tb
from A
flag=1
and
flag2 in (1,2)
union
select sum(flag3) from tb where flag=1 and flag2=1
union
select sum(flag3) from tb where flag=1 and flag2=2
这样行吗?
select
sum(case when flag=1 then flag3 else 0 end) as sum1,
sum(case when flag=1 and flag2=1 then flag3 else 0 end) as sum2,
sum(case when flag=1 and flag2=2 then flag3 else 0 end) as sum3
from tb