Как получить максимальное по времени и уникальное по полю значение?

Есть таблица, со следующими данными:

INSERT INTO `dch_statistic` (`agent_name`, `id_server`, `event`, `info`, `time`) VALUES
('collector', 'mrp_server', 'error', 'crash file', '2016-09-02 11:37:30'),
('collector', 'mrp_server', 'info', 'done file', '2016-09-02 11:38:06'),
('collector2', 'mrp_server', 'info', 'done file', '2016-09-02 11:38:23'),
('collector2', 'mrp_server', 'info', 'done file', '2016-09-02 11:38:41'),
('collector2', 'mrp_server', 'error', 'error file', '2016-09-02 11:39:04');


Как выбрать из нее запись, содержащую максимальное время для каждого `agent_name` c `info` = info
Т.е нужно в итоге получить из примера 2 строки:
'collector', 'mrp_server', 'info', 'done file', '2016-09-02 11:38:06'
'collector2', 'mrp_server', 'info', 'done file', '2016-09-02 11:38:41'
  • Вопрос задан
  • 114 просмотров
Решения вопроса 1
@JuniorNoobie
Сижу в поддержке, пишу мелкие проекты
SELECT a.*
FROM dch_statistic a,
(
SELECT agent_name, max(time) as time FROM dch_statistic GROUP BY agent_name
) b
WHERE a.agent_name = b.agent_name
AND a.time = b.time
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы