Я новичок в SQL и использую SQL Server 2012.
Мне нужно посчитать, сколько раз телефонный номер перезванивал после первого звонка, в течение 24/48/168 часов и отметьте это агенту, который принял первый вызов.
Цель состоит в том, чтобы идентифицировать агентов, которые генерируют много обратных вызовов, чтобы мы могли определить их приоритетность для программ обучения.
Мне нужно что-то похожее на:
LastLocalName Total_Calls Total_Repeating_24 Total_Repeating_48 Total_Repeating_168
Minnie Mouse 2 1 1 1
Mickey Mouse 26 2 10 12
Мне все равно, будут ли группы из 48/168 часов включать один и тот же вызов в предыдущие столбцы. Это может быть элемент уровня.
Я искал везде, где Google может указать мне, и нашел запросы, которые несколько работают, и вот где я остановился (взято из другого вопроса о повторном вызове на этой доске):
;with Call_ordinal_no as (
select
convert(date, [StartDateTimeUTC]) as CallDate,
[LastLocalName],
row_number() over (
partition by
convert(date, [StartDateTimeUTC]),
[LastLocalName]
order by [StartDateTimeUTC]
) as RemoteNumberFmt
from [InteractionSummary]
WHERE startdatetimeutc Between '2020-01-01 00:00:00' and '2020-01-13 11:59:59'
And LastLocalUserId IS NOT NULL
And LastAssignedWorkgroupID = 'ISR Service'
)
select
CallDate as StartDateTimeUTC,
LastLocalName,
count (*) as Total_Calls,
sum(case when RemoteNumberFmt > 1 then 1 else 0 end) as Total_Repeating
from Call_ordinal_no
group by CallDate, LastLocalName
order by CallDate;
То, что я в итоге получаю от этого, действительно не соответствует моим потребностям. Все результаты смещены на 1. Это выглядит так:
StartDateTimeUTC LastLocalName Total_Calls Total_Repeating
2020-01-02 Minnie Mouse 2 1
2020-01-02 Mickey Mouse 26 25
Дополнительная информация: я пробовал это в Excel и Tableau. Я успешно сформулировал этот результат в Excel, но объем данных не может быть обработан в Excel, и мне было приказано сделать это непосредственно в базе данных. Мы добавляем ~ 10 тыс. Строк данных в день, и это должно быть постоянным до t ie в живой панели инструментов Tableau. Таблица (по словам разработчиков, с которыми я говорил) не может рассчитывать на этих данных таким образом. Они тоже направили меня обратно к SQL.