Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Справедливое распределение одним запросом / 2 сообщений из 2, страница 1 из 1
05.03.2017, 03:35
    #39414210
whoim
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Справедливое распределение одним запросом
Приветствую!
Нетривиальная для меня задача, прошу помощи в осознании нужного алгоритма.
Реализуется в телефонии, поэтому очень хочется одним запросом - быстродействие системы.

Дано: таблица вызовов
"datetime", "src", "dst"
в первом поле - датавремя, далее кто вызывал и последнее - кто принял звонок. Это - статистика.
Звонком "вручную" вводим в базу новое значение dst, то есть все они в базе существуют - 101, 102, 103. src нас не интересует.

Задача - выбрать пять единиц dst чтобы получилось "справедливо". Нужно выбрать тех, кто отвечал самое долгое время назад.
Проблема в том, что записей на каждого src может быть много. Поэтому просто сортировка по датевремени не помогает - выбираются одни и те же записи, самые старые.

Нужно как то оформить в два захода. Выбрать сгруппировав всех возможных dst с самым свежим datetime и из них уже выбрать с самым "дальним" datetime пятерых.

Помогите? Ну а я пока повожусь, тоже почитаю. Спасибо!
...
Рейтинг: 0 / 0
05.03.2017, 03:49
    #39414212
whoim
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Справедливое распределение одним запросом
Спасибо, допер, вопрос решился как то так:
SELECT dst FROM cdr GROUP BY dst ORDER BY MAX(calldate)
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Справедливое распределение одним запросом / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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