mssql sqlserver 使用sum计算个数的例子分享


下文讲述一次使用sum优化count统计方法的例子分享,如下所示:
实验环境:sql server 2008 r2


下文讲述一次使用count统计数据例子的方法分享,如下所示:

   ---优化前:
 select 
  a.sortName, 
  (select count(*) from detail where sortName=a.sortName and flag='A'  ) as [ACount], 
  (select count(*) from detail where sortName=a.sortName and flag='B'  ) as [BCount],
  (select count(*) from detail where sortName=a.sortName and flag='C'  ) as [CCount],
  (select count(*) from detail where sortName=a.sortName                    ) as [CountAll] 
  from 
  sortMain as a

  ---优化后:
    select  
   a.sortName, 
  sum(case b.flag when 'A' then 1 else 0 end ) as ACount, 
  sum(case b.flag when 'B' then 1 else 0 end ) as BCount, 
  sum(case b.flag when 'C' then 1 else 1 end)  as CCount 
    sum(1) as CountAll 
from 
  sortMain a, detail b 
where  b.sortName=a.sortName 

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