我有一张表,该表给出了以秒为单位(没有小数)的时间来接听电话。我想获得每月平均回答时间(以秒为单位,两位小数)。我写了代码,但我得到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] 删除。
我来说两句