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
阿齐兹您好,感谢迅速答复。不幸的是,这只是返回'4000 1000'而不是'4000 1000 1000'。为什么是这样? – 2012-03-21 11:20:27
这是因为您需要选择另一列,以使每一行都是唯一的......我更新了查询。 – Aziz 2012-03-21 11:27:50
是的,我也明白了!感谢您的帮助阿齐兹:-) – 2012-03-21 11:35:51