对于下面的例子,我想知道如何获得总数(即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 |
+---------+-----------------+
答案 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