多行总和为总列

时间:2010-02-12 23:57:09

标签: sql

我在sproc中填充了一个与此类似的临时表:

Company   Col1      Col2     Col3    Total
Company1   4          3        2       9
Company2   1          0        3       4
Total      ?          ?        ?       ?

是否有一种灵活的方法可以在一次拍摄中使用每行的SUM填充底部总列,而无需使用子查询单独执行每一列?

3 个答案:

答案 0 :(得分:1)

select sum(col1), sum(col2), sum(col3), sum(col1+col2+col3)
FROM CompanyTable

答案 1 :(得分:0)

如果您使用的DBMS是MS SQL而不是知道如何引用临时表:

SELECT SUM(Col1) as TotalOfCol1,...
FROM #Company

答案 2 :(得分:0)

如果您使用的是MySQL,则可以使用WITH ROLLUP功能在一个查询中获取整个表格:

SELECT Company, SUM(Col1), SUM(Col2), SUM(Col3), SUM(Col1 + Col2 + Col3)
FROM Table1
GROUP BY Company
WITH ROLLUP

结果:

'Company1'  4  3  2  9
'Company2'  1  0  3  4
''          5  3  5 13  <--- This extra row is the column totals