我有一个这样的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 大小写。但在那种情况下,当第一个条件匹配时,数据会跳过第二个条件,我得不到预期的结果。
最佳答案
您可以创建 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
关于Mysql:按多个字段对数据进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22626692/