powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Средняя скорость ответа юзера
22 сообщений из 22, страница 1 из 1
Средняя скорость ответа юзера
    #39660802
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть чат между оператором и клиентом.

Все сообщения хранятся в таблице.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE TABLE IF NOT EXISTS `message` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `chatId` INT NOT NULL DEFAULT -1,
  `type` VARCHAR(50) NULL DEFAULT 'CLIENT',
  `message` LONGTEXT NULL,
  `time` VARCHAR(255) NULL,
  `date` VARCHAR(255) NULL,
  `status` TINYINT(1) NULL DEFAULT 0,
  `created` TIMESTAMP(6) NULL DEFAULT CURRENT_TIMESTAMP(6),
ENGINE = InnoDB;



Нужно определить среднее время ответа оператора клиенту. Каким образом это лучше сделать? Выгрузить все сообщения в цикле обработать? (тут свою уже нюансы ибо нужно учитывать сообщение клиента а после ответ оператора)
Или можно сделать запросом?

Спасибо.
...
Рейтинг: 0 / 0
Средняя скорость ответа юзера
    #39660804
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopИли можно сделать запросом?

Можно. Только при чем здесь Java?
...
Рейтинг: 0 / 0
Средняя скорость ответа юзера
    #39660806
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczМожно. Только при чем здесь Java?

Подскажете как? ибо это на Java обрабатывать или делать запрос. я хз.
...
Рейтинг: 0 / 0
Средняя скорость ответа юзера
    #39660807
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz, Подскажите запрос. Пожалуйста.
...
Рейтинг: 0 / 0
Средняя скорость ответа юзера
    #39660812
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopBlazkowicz, Подскажите запрос. Пожалуйста.
Сделать за вас или отправит вас в профильный форум где обсуждают SQL запросы?
Вы даже не сделали декомпозицию проблемы. У вас же не в вычислении среднеарифметического вопрос? А в том как правильый JOIN сделать чтобы из одной колонки получить две?
...
Рейтинг: 0 / 0
Средняя скорость ответа юзера
    #39660871
vsl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vsl
Гость
BlazkowiczTsyklopBlazkowicz, Подскажите запрос. Пожалуйста.
У вас же не в вычислении среднеарифметического вопрос? А в том как правильый JOIN сделать чтобы из одной колонки получить две?
JOIN тут не нужен, кстати. Всё делается через lag(), и в mysql он вроде бы есть.
...
Рейтинг: 0 / 0
Средняя скорость ответа юзера
    #39660883
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vslJOIN тут не нужен, кстати. Всё делается через lag(), и в mysql он вроде бы есть.
Возможно. Но тогда нужно найти способ схлопнуть последовательные сообщения от одной стороны.
...
Рейтинг: 0 / 0
Средняя скорость ответа юзера
    #39660886
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vslBlazkowiczпропущено...

У вас же не в вычислении среднеарифметического вопрос? А в том как правильый JOIN сделать чтобы из одной колонки получить две?
JOIN тут не нужен, кстати. Всё делается через lag(), и в mysql он вроде бы есть.

mysql не имеет lag. И в mysql все это решается через переменные, но убей бог я не понимаю людей, которые что-то сложнее 2+2 описывают в логике бд.
...
Рейтинг: 0 / 0
Средняя скорость ответа юзера
    #39660887
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczvslJOIN тут не нужен, кстати. Всё делается через lag(), и в mysql он вроде бы есть.
Возможно. Но тогда нужно найти способ схлопнуть последовательные сообщения от одной стороны.

Как то так должно быть.

Код: sql
1.
2.
3.
select first
group by
order by created
...
Рейтинг: 0 / 0
Средняя скорость ответа юзера
    #39660899
vsl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vsl
Гость
BlazkowiczvslJOIN тут не нужен, кстати. Всё делается через lag(), и в mysql он вроде бы есть.
Возможно. Но тогда нужно найти способ схлопнуть последовательные сообщения от одной стороны.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
select avg(created-prev_created) from (
   select 
       m."chatId", m."type", m.created, 
       lag("type", 1) over (partition by "chatId" order by created) prev_type, 
       lag(created, 1) over (partition by "chatId" order by created) prev_created 
   from message m
) t
where "type"<>'CLIENT' and prev_type='CLIENT'


Как-то так.

Озверинmysql не имеет lag.
Верю, конечно, но поиск по «mysql window functions lag» выдал что-то осмысленное, вот я и предложил.

Озверинно убей бог я не понимаю людей, которые что-то сложнее 2+2 описывают в логике бд.
А я не понимаю людей, которые предпочитают выносить простую обработку потока данных на сторону java, не думая о затратах на fetch всей этой массы записей. Многие при этом даже fetchSize не настраивают, выбирая 100500 строк порциями по 5 штук.

Сортировать-то всё равно на стороне БД будете, а здесь это наиболее ресурсоёмкая задача.
...
Рейтинг: 0 / 0
Средняя скорость ответа юзера
    #39660942
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ещё есть такой подход как вычислять статистику во время вставки в БД, а не уже когда-то потом после.
...
Рейтинг: 0 / 0
Средняя скорость ответа юзера
    #39660952
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эта задача решается вообще без БД.
...
Рейтинг: 0 / 0
Средняя скорость ответа юзера
    #39661109
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vslА я не понимаю людей, которые предпочитают выносить простую обработку потока данных на сторону java, не думая о затратах на fetch всей этой массы записей. Многие при этом даже fetchSize не настраивают, выбирая 100500 строк порциями по 5 штук.

Сортировать-то всё равно на стороне БД будете, а здесь это наиболее ресурсоёмкая задача.

Потом границы озвучьте, где "простая обработка потока" данных - который надо обрабатывать в потоке до вставки в бд, к слову, а где уже сложная?
...
Рейтинг: 0 / 0
Средняя скорость ответа юзера
    #39661183
vsl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
vsl
Гость
ОзверинvslА я не понимаю людей, которые предпочитают выносить простую обработку потока данных на сторону java, не думая о затратах на fetch всей этой массы записей. Многие при этом даже fetchSize не настраивают, выбирая 100500 строк порциями по 5 штук.

Сортировать-то всё равно на стороне БД будете, а здесь это наиболее ресурсоёмкая задача.

Потом границы озвучьте, где "простая обработка потока" данных - который надо обрабатывать в потоке до вставки в бд, к слову, а где уже сложная?
В 2 км на юго-запад от упомянутых Вами 2+2.
...
Рейтинг: 0 / 0
Средняя скорость ответа юзера
    #39661217
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vslОзверинпропущено...


Потом границы озвучьте, где "простая обработка потока" данных - который надо обрабатывать в потоке до вставки в бд, к слову, а где уже сложная?
В 2 км на юго-запад от упомянутых Вами 2+2.

Мои 2+2 - это триггер для обеспечения нефункциональных требований(дата создании записи, логирование, etc.)
Когда я встречаю проект, в котором бизнес логика размыта по нескольким слоям тонким слоем, причем один из слоев - БД, я начинаю переживать.
...
Рейтинг: 0 / 0
Средняя скорость ответа юзера
    #39661250
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsyklopКаким образом это лучше сделать?
Для данной структуры это вообще никак не сделать, поскольку нет связи между обращением и ответом. Нет способа определить к какому обращению относится ответ.
...
Рейтинг: 0 / 0
Средняя скорость ответа юзера
    #39661262
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovTsyklopКаким образом это лучше сделать?
Для данной структуры это вообще никак не сделать, поскольку нет связи между обращением и ответом. Нет способа определить к какому обращению относится ответ.

Согласен, заставьте пользователя в чате перед каждым ответом выбирать сообщение, по которому он задает вопрос, а оператора - на которое отвечает. Еще лучше заставить пользователя в ручную нумеровать свои ответы по уникальным цепочкам, чтобы было понятно - это он задает вопросы по ответу оператора или спрашивает уже что-то новое.
...
Рейтинг: 0 / 0
Средняя скорость ответа юзера
    #39661348
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovДля данной структуры это вообще никак не сделать, поскольку нет связи между обращением и ответом. Нет способа определить к какому обращению относится ответ.
Ерунда. Есть время. Известно от кого сообщение. Всё реализуемо.
...
Рейтинг: 0 / 0
Средняя скорость ответа юзера
    #39661430
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОзверинСогласен, заставьте пользователя в чате перед каждым ответом выбирать сообщение, по которому он задает вопрос, а оператора - на которое отвечает. Еще лучше заставить пользователя в ручную нумеровать свои ответы по уникальным цепочкам, чтобы было понятно - это он задает вопросы по ответу оператора или спрашивает уже что-то новое.
Я, как пользователь, пошлю такую систему куда подальше :))
Хотя смотря о какой системе речь, вот если это чат моего поставщика товаров или услуг с которых я имею свой процент, тогда да, можно дополнительные усилия применять.
А если это поставщик домашнего интернета или сотовый оператор, ну их в баню с их нумерацией :)
...
Рейтинг: 0 / 0
Средняя скорость ответа юзера
    #39661431
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще нюанс, вопросы клиента могут быть такими, что на какие-то ответить можно сразу же, а на какие-то постратить эNное кол-во времени. Как это учесть? К чему такой подсчет тогда.
Как говорят - средняя температура по больнице :)
...
Рейтинг: 0 / 0
Средняя скорость ответа юзера
    #39661434
Tsyklop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NixicЕще нюанс, вопросы клиента могут быть такими, что на какие-то ответить можно сразу же, а на какие-то постратить эNное кол-во времени. Как это учесть? К чему такой подсчет тогда.
Как говорят - средняя температура по больнице :)
Согласен что нюансов тут много. Был бы я заказчиком...
...
Рейтинг: 0 / 0
Средняя скорость ответа юзера
    #39661477
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В подобного рода задачах численная точность не особо важна. Сами входные данные - не очень точные.
Важнее сделать просто классификацию. Типа за сегодняшний день 90% ответов операторов были не более
чем 15 минут. Процентиль типа. А остальные - дольше. Если нужна детализация - дать срез таблицы по операторам.
Но во всех случаях - численная точность не имеет значения. Вообще в системах принимающих решения
часто мы имеем дело с грубыми данными. Или с композицией нескольких потоков данных.
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Средняя скорость ответа юзера
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]