Я имею эту таблицу: - http://sqlfiddle.com/#!9/b3223/1MySQL группы максимальное значение строки
id entity_id value date 1 1 98 March, 28 2015 19:58:43 2 1 321 March, 28 2015 19:59:54 3 1 123 March, 28 2015 19:59:54 4 2 34 March, 28 2015 20:00:43 5 2 76 March, 28 2015 20:00:44
И я хочу, чтобы перечислить новейший ряд (по date
значения) для каждого entity_id
.
Первое решение, а не тот также: - http://sqlfiddle.com/#!9/b3223/2
SELECT id, entity_id, value, MAX( `date`) FROM `gmd` GROUP BY entity_id
Один из рабочих растворов, кажется: - http://sqlfiddle.com/#!9/b3223/3
SELECT id, entity_id, value, `date` FROM gmd AS main WHERE DATE = ( SELECT MAX( `date`) FROM gmd WHERE entity_id = main.entity_id ) GROUP BY entity_id
мне интересно, если это надежное решение, и если есть другие более элегантные способы сделать это.
Спасибо!
И на две одинаковые даты? Отображать обе записи для каждого объекта? –
Проверьте свой второй результат запроса с некоторыми изменениями данных. Http://sqlfiddle.com/#!9/ce5ab/1 – Beginner
@Beginner, я вижу вашу точку зрения, но в этом случае результат все равно нормально, потому что обе даты равны. Хотя может быть второе значение для сравнения с и может быть самым высоким ID. –