表使用由group创建的列中的列的总和由
问题描述:
对于下面的示例,我想知道如何获得总数(即SUM(total_cost)中所有行的总和。容易,但我一直在努力,现在相当一段时间,现在还在坚持任何帮助将不胜感激,我对这个问题的“noobishness”道歉表使用由group创建的列中的列的总和由
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 |
+---------+-----------------+
答
可以使用WITH ROLLUP
:。
SELECT cate_id, SUM(total_cost)
FROM purchase
GROUP BY cate_id WITH ROLLUP;
这将增加一个新的行总数。
+0
WITH ROLLUP是一个非常有用的查找术语,非常感谢! – urandom
答
对于跨RDBMS的通用解决方案,考虑UNION
查询,而不分组:
SELECT cate_id, SUM(total_cost)
FROM purchase
GROUP BY cate_id
UNION ALL
SELECT NULL, SUM(total_cost)
FROM purchase
答
,除非你真的需要使用group by
或需要显示所有的ID的干净的解决方案应该是:
select sum(total_cost) from purchase;
这给出了输出:3590
你在找这样的事吗? | CA001 | 3590.00 | | CA002 | 3590.00 | | CA003 | 3590.00 | 然后检查此问题,类似的问题 https://stackoverflow.com/questions/11357640/using-sum-without-grouping-the-results – Valli