web-dev-qa-db-ja.com

結果セットの最後の行のすべての列値の合計と行の合計(グループ化)を取得するSQLクエリ

誰かが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  

TCS(列の合計の合計)とTRS(行の合計の合計)はどちらも、それぞれ新しい列と行です。

6
ary

次のように、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

sqlfiddleのライブデモ

16
dasblinkenlight

このクエリは仕事をします

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

最初の列はvarcharとして返されます。これは、整数(id)とテキストTCSが混在しているためです。

3
Szymon

sum(Jan + Feb + Mar)をTRSとして選択します

1
Jonnas Macaraeg