我有一个像这样的mysql表
id criteria1 criteria2 amount
1 'a' 'b' 100
2 'a' 'c' 20
3 'd' 'b' 30
我需要按查询编写一个组,以便我的最终输出应该是
criteriaMatch sum(amount)
criteria2 = b 130
criteria1 = a 120
id为1的数据在两种情况下都重叠。
我如何实现这一目标?
我尝试使用mysql案例。但是在第一个标准匹配的情况下,数据会跳过第二个条件而我得不到预期的结果。
答案 0 :(得分:3)
您可以创建2个单独的查询,第一个仅按标准1进行分组,第二个仅按标准2进行分组,并在每个查询中使用适当的过滤器。所以,像这样:
select criteria1 'Criteria',sum(amt)
from yourtable
where (criteria1 = 'a')
group by criteria1
union
select criteria2 'Criteria',sum(amt)
from yourtable
where (criteria2 = 'b')
group by criteria2