2016-06-29 57 views
0

有隻有總結一個表的特定組的方法嗎?例如,如果我有mysql只總結一個表的特定組

KEYS/VALS 
A / 1 
A / 2 
B / 3 
B / 3 
C / 1 
C / 1 

,我想僅分組A和C得到,但沒有任何其他的如以上B:

KEYS/VALS 
A / 3 
B / 3 
B / 3 
C / 2 

這看起來非常簡單採用存儲過程,但我不能確定是否可以用查詢?

回答

3

UNION ALL非-B部分用B部分:

select keys, sum(vals) 
from tablename 
where keys <> 'B' 
group by keys 
union all 
select keys, vals 
from tablename 
where keys = 'B' 
0

它實現利用聯盟這個結果,因爲任何一組通過將應用到整個結果纔是可能的。隨着工會可以結合2次獨立的查詢,因此,本集團通過將僅適用於查詢1:

select keys, sum(vals) as vals 
    from yourtable 
    where keys in ('A','B') 
    group by keys 
union 
select keys, vals 
    from yourtable 
    where keys not in ('A','B') 
+0

UNION ALL,讓兩者(B,3)行。 – jarlh

0

請嘗試以下查詢

SELECT keys, SUM(vals) as vals 
FROM yourtable 
WHERE keys in ('A','C') 
GROUP BY keys 
+0

這不起作用,你需要聯合所有其他答案中指出的。會排除B行 – shev72