表中使用groupby创建的列的总和

时间:2017-10-10 21:37:40

标签: mysql sql group-by sum

对于下面的例子,我想知道如何获得总数(即SUM(total_cost)中所有行的总和。看起来这应该很容易,但我一直在尝试现在已经有一段时间了,我仍然被困住了。任何帮助都会受到高度赞赏,我为这个问题的“noobishness&#34”道歉。

SELECT cate_id,SUM(total_cost)
FROM purchase            
GROUP BY cate_id;

+---------+-----------------+
| cate_id | SUM(total_cost) |
+---------+-----------------+
| CA001   |         1725.00 | 
| CA002   |          965.00 | 
| CA003   |          900.00 | 
+---------+-----------------+

3 个答案:

答案 0 :(得分:3)

您可以使用WITH ROLLUP

SELECT cate_id, SUM(total_cost)
FROM purchase            
GROUP BY cate_id WITH ROLLUP;

这将添加一个新行。

答案 1 :(得分:1)

对于跨RDBM的一般解决方案,请考虑UNION查询而不进行分组:

SELECT cate_id, SUM(total_cost)
FROM purchase            
GROUP BY cate_id

UNION ALL

SELECT NULL, SUM(total_cost)
FROM purchase 

答案 2 :(得分:0)

除非您确实需要使用group by或者需要显示所有ID,否则应该是最干净的解决方案:

select sum(total_cost) from purchase;

这给出了输出:3590