MySQL总和分组问题

问题描述:

我有一个包含要开票的工作的表。每行包含两列,'值'和'组'。像这样MySQL总和分组问题

ID Value Group 
1 2000.00 1 
2 2000.00 1 
3 1000.00 0 
4 1000.00 0 

我需要做的是在1和2行相结合的值(因为它们具有相同的组号),然后返回行3和4的正常的(所以,没有组合在一起):

4000 //Rows 1 and 2 combined 
1000 //Row 3 returned as whole value 
1000 //Row 4 returned as whole value 

我试着在查询中使用GROUP BY,所以像

SELECT SUM(Value) AS totalValue FROM table GROUP BY Group 

然而,这将返回

4000 
2000 //Row 3 and 4 combined 

它结合了第3行和第4行,因为它们共享相同的组号码,将它们组合在一起。

我的问题是,我不希望他们分组在一起。我希望它们分别返回,因为它们的值为零。有什么办法可以做到这一点?

SELECT Group AS Unique_ID, SUM(Value) AS totalValue FROM table WHERE Group>0 GROUP BY Group 
UNION 
SELECT id AS Unique_ID, Value As totalValue FROM table WHERE Group=0 
+0

阿齐兹您好,感谢迅速答复。不幸的是,这只是返回'4000 1000'而不是'4000 1000 1000'。为什么是这样? – 2012-03-21 11:20:27

+0

这是因为您需要选择另一列,以使每一行都是唯一的......我更新了查询。 – Aziz 2012-03-21 11:27:50

+0

是的,我也明白了!感谢您的帮助阿齐兹:-) – 2012-03-21 11:35:51