SQL怎么在后一行输出前几行的总和

如题所述

不知道你是什么数据库
最简单的处理就是
-- 这个是你原有的查询的 SQL
SELECT 姓名, 成绩 FROM
UNION ALL
SELECT '合计', SUM( 成绩) FROM 表
就可以了。

需要注意的是, 下面的 SELECT 的列的数量, 要和上面的 SELECT 的列的数量一致。
合计数字的,用 SUM. 如果是 文字信息的, 就直接写个固定的字符串信息就好。

如果你原本的 SQL 语句, 已经是有 SUM 与 GROUP BY 了。
例如:
SELECT 姓名, SUM(成绩) FROM 表 GROUP BY 姓名
那么要用到 ROLLUP 来处理更省事一些。

但是ROLLUP 不同的数据库处理起来,有些细微的差异。

比如 Oracle
SELECT 姓名, SUM(成绩) FROM 表 GROUP BY ROLLUP ( 姓名)

SQL Server / MySQL
SELECT 姓名, SUM(成绩) FROM 表 GROUP BY 姓名 WITH ROLLUP
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-11
select title,num1,num2,num3 from table
union
select '',sum(num1),sum(num2),sum(num3)
from table
group by title

解释:union前后两个句子的结果要列数相同,如果不同,你可以用''空格来补齐。
相似回答