每日平均每日统计数据

时间:2014-10-30 14:42:30

标签: sql

我有一个呼叫中心座席表(每日统计数据),每天由座席存储。

我想获得所有代理商的月平均值,因此我可以将月度统计数据与之进行比较,但我目前的尝试仅显示该月的平均值,而不是整个月的平均值:

select
  Convert(Date, DATEADD(MONTH, DATEDIFF(MONTH, 0, Date), 0),0),
  AVG(CallsAnswered)
FROM
    dbo.AvayaD_Agent_Stat
GROUP BY
    Convert(Date, DATEADD(MONTH, DATEDIFF(MONTH, 0, Date), 0),0)

感谢您提供的任何帮助(或需要澄清),谢谢!


修改 希望这有点帮助,我意识到上述并不是很好地解释我正在拍摄的东西。我想要生成的是该月代理统计数据总和的平均值。 (如果措辞正确的话)

例如,如果我有2个代理人都工作10天,一个人每天接听10个电话,另一个人每天接听20个电话。目前,使用上面的查询显示为15个调用。我想将它作为150个电话(总共300个电话/ 2个座席)。然而,我遇到的问题是我不能放置一定数量的天/代理,因为它总是在变化。

根据要求包括更大的表格片段。

 select Date,
    AgentLogin, 
    CallsAnswered
    from dbo.AvayaD_Agent_Stat

Date    AgentLogin  CallsAnswered
2014-08-11  1005    21
2014-08-12  1005    21
2014-08-13  1005    23
2014-08-14  1005    18
2014-08-15  1005    16
2014-08-18  1005    25
2014-08-19  1005    44
2014-08-20  1005    17
2014-08-21  1005    25
2014-08-22  1005    12
2014-08-25  1005    23
2014-08-26  1005    32
2014-08-27  1005    24

1 个答案:

答案 0 :(得分:1)

如果您想要整个月的每个代理商的平均值,请总结该月的总数,然后除以代理商的数量:

select DATEADD(MONTH, DATEDIFF(MONTH, 0, Date), 0),
       SUM(CallsAnswered) / COUNT(DISTINCT AgentId)
FROM dbo.AvayaD_Agent_Stat
GROUP BY DATEADD(MONTH, DATEDIFF(MONTH, 0, Date), 0)

注意我还删除了您月份计算的最终convert()。这是多余的。