2014-03-25 68 views
0

我有一个MySQL表像这样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的情况。但在这种情况下,当第一个标准匹配时,数据会跳过第二个条件,而我没有得到预期的结果。

回答

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