2014-10-30 107 views
0

我有一个呼叫中心代理(每日统计)表,由代理每天存储。每日平均每日统计

我想获得的所有代理的月平均,这样我就可以比较月度统计数据,但是我目前的尝试将在一个月内只显示每日平均值,而不是平均整整一个月:

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) 

欣赏您可以提供的任何帮助(或需要澄清),并感谢您!


编辑: 希望这有助于一点,我知道上面是不是很大,在解释什么,我拍摄的。我期望提供的是该月的代理商统计数据总和的平均值。 (如果措词正确)

例如,如果我有两个代理都工作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 
+0

我刚刚用一些虚拟数据测试了你的代码,它每月都会返回平均值。可能还有一些我没有看到的东西。你能提供一组样本数据和表格结构吗? – 2014-10-30 15:02:36

+0

请编辑您的问题样本数据和预期的结果。我不确定“整个月的平均水平”是什么意思。 – 2014-10-30 15:04:48

回答

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()你的月份计算。这是多余的。

+0

看起来很完美!没有考虑除以伯爵(鲜明)非常感谢你! – George 2014-10-30 15:23:04