如何使用SQL Server 2014获得仅2位小数的平均值?

用户名

我有一张表,该表给出了以秒为单位(没有小数)的时间来接听电话。我想获得每月平均回答时间(以秒为单位,两位小数)。我写了代码,但我得到6位小数。

我要去哪里错了?

我的代码:

SELECT datepart(year,CallStartTime) [Year]
      ,datepart(month,CallStartTime) [Month]
      ,datepart(day,CallStartTime) [Day]
      ,AVG( CAST((TimeToAnswer) AS Decimal (10,2))) [Average]

FROM LineCallTracer LCT

WHERE LCT.CallStartTime >= '2017-10-01 00:00:00.000'
  AND LCT.DNIS = 5050
  AND LCT.MainDevice IS NOT NULL

GROUP BY datepart(year,CallStartTime), 
    datepart(month,CallStartTime), 
    datepart(day,CallStartTime)

ORDER BY [Year], [Month], [Day]

我得到的结果如下:

Year    Month   Day   Average
2017    10       1    0.466666
2017    10       2    1.513036
2017    10       3    1.642029
2017    10       4    0.890945
2017    10       5    0.541231
2017    10       6    0.638501

如何只用两位小数获得平均值?

编辑:当我改为尝试其他两个选项时

,CAST( AVG(TimeToAnswer) AS Decimal (10,2)) [Average] 
           -- OR
,FORMAT(AVG(TimeToAnswer), '#########0.00') AS [Average]

然后我得到以下结果(不准确):

Year    Month   Day      Average
2017    10       1       0.00
2017    10       2       1.00
2017    10       3       1.00
2017    10       4       0.00
2017    10       5       0.00
2017    10       6       0.00
用户名

我尝试了以下语法,并且可以正常工作。我混合使用了@GordonLinoff和@ThorstenKettner的建议。我对他们的答案都表示赞同。

,FORMAT (AVG( CAST((TimeToAnswer) AS Decimal (10,2))), '#########0.00') [Average]

我现在得到以下结果,并根据需要自动舍入或舍入。

Year    Month   Day      Average
2017    10       1       0.47
2017    10       2       1.51
2017    10       3       1.64
2017    10       4       0.89
2017    10       5       0.54
2017    10       6       0.64

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章