2014-10-30 2 views
0

У меня есть таблица агентов call-центра (ежедневная статистика), которая хранится агентом в день.Среднемесячная сумма по дневной статистике

Я хотел бы получить ежемесячно в среднем для всех агентов, так что я могу сравнить ежемесячную статистику с, однако моя нынешняя попытка будет показывать только среднесуточные в течение месяца, в отличие от среднего показателя за весь месяц:

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) 

Цените любую помощь, которую вы можете предоставить (или нуждаетесь в разъяснении), и спасибо!


EDIT: Надеюсь, что это помогает немного, я понимаю, что выше, не является большой в объяснении того, что я снимаю для. То, что я ищу для производства, - это среднее от суммы агентской статистики за месяц. (если это правильно сформулировано)

Например, если у меня есть два агента, которые работают 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

Я просто проверил ваш код с некоторыми фиктивными данными, и он возвращает средние значения в месяц. Потенциально есть что-то еще, чего я не видел. Не могли бы вы предоставить образец данных и структуру таблицы? –

+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() на ваш расчет месяца. Это избыточно.

+0

Это выглядит идеально! Не считал деление графом (отличным) Спасибо большое! – George