标签归档:sum

mssql sqlserver sql脚本对数据表所有行和列值求和的方法分享


摘要:
下文讲述sqlserver中对数据表的行和列都进行求和的方法分享,如下所示:
实验环境:sql server 2008 R2


在日常的sql脚本编写中,我们经常遇见需要对一个数据表进行横向和纵向都进行求和的操作,下文将采用举例的方式讲述如何对行列进行求和的方法。

实现思路:
使用sum对列进行横向求和,
使用union all将纵向求和的结果进行组合起来,达到横向和纵向求和的目的。

create table [maomao365.com]
(keyId int identity,info nvarchar(20) not null,
qty1 int not null,qty2 int not null,qty3 int not null )
go
---生成基础数据-----
insert into [maomao365.com]
(info,qty1,qty2,qty3)
values
(N'sqlBlog',1,2,3),
(N'sql爱好者',3,8,9),
(N'猫猫小屋',11,28,39),
(N'sqlserver技巧站',16,22,32)


/*先更行横向求和*/
select keyId,info,qty1,qty2,qty3,
(qty1+qty2+qty3) as qtyAll from [maomao365.com]
/*组合结果*/
union all
/*纵向求和*/
select '','',sum(qty1),sum(qty2),sum(qty3),
sum(qty1+qty2+qty3) as qtyAll from [maomao365.com]

go
truncate table [maomao365.com]
drop     table [maomao365.com]

mssql_sqlserver_行列求和_9553

mssql_sqlserver_行列求和_9553


相关阅读:
多列数据进行求和sum计算
数据和sum结果一起
sum使用if进行按条件汇总
sum函数计算后的结果中包含null的处理方法
sum计算个数的例子分享
sum求和函数简介
sum(1)、count(*) 效率对比分析
sum(1)、sum(2)、count(1)、count(8)、count(*)、统计函数应用区别简介
数据库中sum和count用法区别说明

mssql sqlserver sum显示多列的方法分享


摘要:
下文讲述sqlserver sql脚本中,同时对多列进行sum计算,如下所示:
实验环境:sql server 2008 R2


在sqlserver中,当我们需要sum显示多列时,此时我们可以采取同时对表的不同列执行sum操作,如下所示:

    create table [maomao365]
(keyId int identity,
qty1 int,
qty2 int,
qty3 int)
go

/*生成数据*/
insert into [maomao365]
(qty1,qty2,qty3)
values
(8,9,10),
(1,2,3),
(5,4,null),
(6,11,13),
(7,12,14)
go


/*多列分别sum求和*/

select sum(qty1) as [qty1],sum(qty2) as [qty2],
sum(qty3) as [qty3] from [maomao365]


/*sum同时多列一起求和*/
select sum(isnull(qty1,0)+isnull(qty2,0)+isnull(qty3,0)) as [qty] 
 from [maomao365]


select sum(qty1+qty2+qty3) as [qty] 
 from [maomao365]

go
truncate table [maomao365]


sum求和注意事项:
当使用sum聚合函数进行求和运算时,系统会过滤掉列值为null的行

mssql sqlserver sum函数计算后的结果中包含null的处理方法分享


摘要:
在mssql进行聚合计算时,有时候查询出来的结果包含null,此时我们可采用以下方法将null转换为0



方法1:使用isnull替换

    

 create table #maomao365 
(qty int)
go


insert into #maomao365(qty)
values(1),(2),(3),(null),(5),(6),
(null)
go


select isnull(sum(qty),0) from #maomao365
where qty is null 




go
truncate table #maomao365 
drop table #maomao365


方法2:使用case when 替换

    

 create table #maomao365 
(qty int)
go


insert into #maomao365(qty)
values(1),(2),(3),(null),(5),(6),
(null)
go


select case 
         when sum(qty) is null then 0
          else   sum(qty) 
          end 
           from #maomao365
          where qty is null 




go
truncate table #maomao365 
drop table #maomao365


方法3:用coalesce替换相应的值

    

 create table #maomao365 
(qty int)
go


insert into #maomao365(qty)
values(1),(2),(3),(null),(5),(6),
(null)
go


select coalesce(sum(qty),0) from #maomao365
where qty is null 




go
truncate table #maomao365 
drop table #maomao365

相关阅读:
多列数据进行求和sum计算
数据和sum结果一起
sum使用if进行按条件汇总
sum计算个数的例子分享
sum求和函数简介
sum(1)、count(*) 效率对比分析
sum(1)、sum(2)、count(1)、count(8)、count(*)、统计函数应用区别简介
数据库中sum和count用法区别说明
sql脚本对数据表所有行和列值求和的方法