2017-04-19 66 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還使用整數運算對於一般的,所以你需要轉換爲一個非整數爲好。