SSMS (SQL) - 求和函数



我对sql相当陌生,所以请记住,我希望将特定列的两个"中心"的总和相加。

这是我的 sql 查询;

select center, sum(convert(float,vol_ipm)) as Vol_Ipm
from example_Test
where daterange = '2016-11-01'
group by center

结果显示为:

Center:     Vol_Ipm:
Montreal    3000
Toronto     8500

我想将两个中心相加并获得总数(总和(,而无需手动将它们相加,如果我能得到一个临时列,填充蒙特利尔+多伦多的总数,那就太好了。我似乎想不通。

任何建议或提示将不胜感激。

干杯

只需从您的选择中剪掉center列:

select sum(convert(float,vol_ipm)) as Vol_Ipm
from example_Test
where daterange = '2016-11-01'

输出:

Vol_Ipm:
11500

Transact-SQL 可以为 GROUP BY 执行分层汇总,因此它将按 CENTER 分组,但随后也会为您提供一个具有总计的 NULL 中心。

GROUP BY ROLLUP( center )

这将得到所有vol_ipm列的总和:

select sum(convert(float,vol_ipm)) as Vol_Ipm
from example_Test
where daterange = '2016-11-01'

如果要保留原始查询,但使此总数在每行上可见,请执行此操作

select center, 
       convert(float,vol_ipm) as Vol_Ipm,
       (select sum(convert(float,vol_ipm)) from example_test where daterange = '2016-11-01') as Total
from example_Test
where daterange = '2016-11-01'
group by center

还要注意如何编写日期格式,始终使用中性语言格式。请参阅此链接 http://karaszi.com/the-ultimate-guide-to-the-datetime-datatypes

最新更新