SQL Query获取结果集最后一行中所有列值的总和以及行总和(group by)

ary*_*ary 6 mysql sql sql-server sql-server-2008

有人可以帮我写一个查询来获得TCS和TRS吗?

ID  Jan Feb Mar TRS
1   4   5   6   15
2   5   5   5   15
3   1   1   1   3
TCS 10  11  12  
Run Code Online (Sandbox Code Playgroud)

TCS(总列总和)和TRS(总行总和)分别是新的列和行,它们给出了它们.

das*_*ght 16

你可以使用GROUP BYWITH ROLLUP,像这样:

SELECT
    id
,   SUM(jan) as jan
,   SUM(feb) as feb
,   SUM(mar) as mar
,   SUM(jan+feb+mar) as TRS
FROM test
GROUP BY id WITH ROLLUP
Run Code Online (Sandbox Code Playgroud)

在sqlfiddle上进行现场演示.


Szy*_*mon 3

这个查询将完成这项工作

select cast(id as varchar(20)), Jan, Feb, Mar , Jan + Feb + Mar as TRS
from table1

union all

select 'TCS' as id, SUM(Jan) Jan, SUM(Feb) Feb, SUM(Mar) Mar, null as TRS
from table1
Run Code Online (Sandbox Code Playgroud)

第一列将被返回,因为varchar这样你就有了整数(id)和文本的混合TCS