2011-07-08 21 views
0

我还有一个小问题。我有一个MySQL表行的多个SUM

cat | item | data | 
100 | 0 | 10 | 
102 | 1 | 3 | 
101 | 1 | 1 | 
100 | 0 | 40 | 
100 | 1 | 20 | 
102 | 0 | 3 | 
101 | 1 | 2 | 
100 | 0 | 30 | 
102 | 1 | 3 | 

james_bond帮我验证码:

SELECT cat, SUM(IF(item = 0,1,0)) AS items0, 
    SUM(IF(item = 1,1,0)) AS items1 FROM table GROUP BY cat 

我得到的结果是:

categories | items 0 | items 1 
100  |  3  |  1 
101  |  0  |  2 
102  |  1  |  2 

现在我需要另一条规则得到以下结果:

我想要项目0和项目1的数据总和:

categories | data 0 | data 1 
100  |  80 |  20 
101  |  0  |  3 
102  |  3  |  6 

如果有人能帮助我,我会很高兴。

+1

在你与你的'item'列做同样的方式就总结一下'data'列。这并不难,尝试根据您现有的解决方案为其提供解决方案。 – joschi

回答

3

这应该是一个类似的查询:

SELECT 
    cat, 
    SUM(IF(item = 0,data,0)) AS data0, 
    SUM(IF(item = 1,data,0)) AS data1 
FROM table GROUP BY cat; 
+0

哇真棒!!!!!!! :D谢谢你!这看起来比我的尝试更好:D:D – bernte