2014-05-13 50 views
0

我有以下表:SQL「分裂」基團通過

('cat', 5000, 7000, 'A'), 
('dog', 9200, 11000, 'A'), 
('fog', 6500, 9300, 'B'), 
('fox', 16001, 15001, 'B'), 
('cat', 5005, 7005, 'B'), 
('dog', 9299, 11399, 'B'), 
('cat', 5005, 7005, 'B'), 
('dog', 9299, 11399, 'B'), 
('fox', 16001, 15002, 'A') 

我需要通過第一列,以獲得選擇groub然後4列與的總和:

COL2爲一個標誌,

COL3爲一個標誌,

COL2爲B標誌和

COL3對於B˚F落後。

我怎樣才能得到這個?

SQLFiddle

+1

請加上預期的查詢結果。 –

+0

@ M.Massias預期結果現在在接受的答案^。^ – mauretto

回答

3
SELECT 
    Animal, 
    SUM(CASE WHEN flg = 'A' THEN V1 ELSE 0 END) AS A_V1, 
    SUM(CASE WHEN flg = 'A' THEN V2 ELSE 0 END) AS A_V2, 
    SUM(CASE WHEN flg = 'B' THEN V1 ELSE 0 END) AS B_V1, 
    SUM(CASE WHEN flg = 'B' THEN V2 ELSE 0 END) AS B_V2 
FROM 
    MyTab 
GROUP BY 
    Animal 
+0

+1。[fiddle for your stuff]](http://sqlfiddle.com/#!2/ca8da/22) – potashin

0
select animal, 
    SUM(If(flg='A',V1,0)), 
    SUM(If(flg='A',V2,0)), 
    SUM(If(flg='B',V1,0)), 
    SUM(If(flg='B',V2,0)) 
from MyTab 
group by animal