2016-12-17 3 views
3

У меня проблема в mysql. И я использую инструмент MYSQL. Я имею дело с журналами сообщений центра обработки вызовов. Скажем, у меня есть таблица, соответствующая Message_Replies. И его столбцы - «id», «responder», «timestamp». Ответчик может иметь два значения: - «агент», «пользователь». Взаимодействие с агентом responder = «агенты» - это записи, которые наш агент ответил, а записи с responder = 'user' - это записи, которые пользователь ответил.Сложная логика запросов Sql

Say we have a sequences of messages like this:- User, Agent, User, User, Agent, User, User, Agent, User, Agent.

Я хочу, чтобы Среднее время отклика для этого билета. Идеальный способ - получить первую метку времени сообщения «пользователем», а затем первую метку сообщения «агентом» и вычесть эту временную метку, чтобы получить время ответа. Затем введите первую запись «user» и следующую первую запись «agent» и получите свое время по-другому. т.е. если два ответа на продолжение от пользователя, то я должен принять первый ответ «пользователем» и получить следующую первую запись для «агента» и получить разницу во времени. Я не получаю, как получить время разницы первого ответа пользователя и следующего первого ответа агента.

Любые предложения?

+1

Есть ли в каждой записи также временная метка? Это звучит как проблема с пробелами и островами. –

+0

Я бы сказал, что ваш стол пропускает (по крайней мере) одно поле, которое позволит правильно фокусироваться на ** разговоре **. Я имею в виду, что в вашей таблице хранятся разговоры между многими пользователями и многими агентами (где, кроме того, у одного агента могут быть активные разговоры с несколькими пользователями). – FDavidov

+0

Это было бы действительно более ясным с данными образца и желаемыми результатами. –

ответ

0

Вы можете попробовать ниже 1. Создайте временную таблицу, скажем, t1 и вставьте в нее данные, используя запрос выбора для сообщений, где responder = пользователь с минимальной меткой времени и группировкой по идентификатору сообщения. 2. создать другую временную таблицу t2, вставить в нее данные с помощью запроса выбора для сообщений, в которых responder = агент с максимальной меткой времени и группировкой по идентификатору сообщения 3. теперь используйте вычитание соединения и даты для получения времени ответа на сообщения (билеты)

Смежные вопросы