2014-03-25 69 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