我有这张 table : -http://sqlfiddle.com/#!9/b3223/1
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
我想列出每个 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
我想知道这是否是一个可靠的解决方案,以及是否有其他更优雅的方法来做到这一点。
谢谢!
最佳答案
如果您总是想获取具有相同日期
且具有最高id
的值,则可以尝试此操作:
SELECT id, entity_id, value,
(SELECT MAX(`date`) FROM gmd y WHERE y.id = x.id) AS `date`
FROM `gmd` x
GROUP BY entity_id DESC
ORDER BY id;
这是sqlfiddle .
关于mysql 组最大值行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29322261/