2017-04-19 63 views
0

我想总和除以COUNT列中的总结SQL公式

Select date,SUM(OOC) OOC,SUM(SUM_CVOICE) SUM, Count(SUM_CVOICE) Cnt,SUM(SUM_CVOICE)/Count(SUM_CVOICE) CVOICE 
from #Temp 
group by date 
order by date 

date OOC SUM Cnt CVOICE 
03/01/2017 1569 19445 11252 1 
04/01/2017 235 8299 4842 1 
05/01/2017 154 11851 6361 1 

它不会给确切的十进制值。

回答

0

disvision在SQL Server中很棘手,你需要做隐式转换,否则/会取结果的整数部分。

Select date, 
     SUM(OOC) as OOC, 
     SUM(SUM_CVOICE) as SUM, 
     Count(SUM_CVOICE) as Cnt, 
     SUM(SUM_CVOICE)*1.0/Count(SUM_CVOICE) as CVOICE 
from #Temp 
group by date 
order by date 
+0

非常感谢!它的工作 –

+0

随时,伴侣:) – LONG

1

SQL Server进行整数运算。所以,简单的答案是以某种方式将您的值转换为非整数。一个简单的方法是* 1.0乘:

Select date, SUM(OOC) as OOC, SUM(SUM_CVOICE) as SUM, 
     Count(SUM_CVOICE) as cnt, 
     SUM(SUM_CVOICE)*1.0/Count(SUM_CVOICE) as CVOICE 
from #Temp 
group by date 
order by date; 

但是,你正在计算被称为平均。所以,这是简单的:

Select date, sum(OOC) as OOC, sum(SUM_CVOICE) as SUM, 
     Count(SUM_CVOICE) as cnt, 
     avg(SUM_CVOICE * 1.0) as CVOICE 
from #Temp 
group by date 
order by date; 

注意,SQL Server还使用整数运算对于一般的,所以你需要转换为一个非整数为好。