我尝试从MySQL数据库中收集一些数据已经有一段时间了。
问题是,我希望按objectid对数据进行分组,同时只获取最新的数据(降序)。
每次我尝试它,我要么得到一个错误,或者它不下降。
我现在的疑问是:
SELECT * FROM 'table' GROUP BY 'objectid' DESC
我尝试过按id或timestamp排序,但结果是升序的。
我的问题类似于:http://stackoverflow.com/questions/7306082/mysql-using-group-by-and-desc
然而,那里提供的答案并没有解决我的问题。
提前感谢!
发布于 2013-05-27 18:02:23
您还必须指定用于排序的ORDER BY子句:
SELECT * FROM 'table' GROUP BY 'objectid' ORDER BY timestamp DESC发布于 2013-05-27 18:01:55
您的查询错误,您应该使用backticks而不是single quotes,并且错过了order by语句
尝尝这个
SELECT * FROM `table` GROUP BY `objectid` Order by id DESC发布于 2013-05-27 18:15:11
这将为您提供每个ObjectId的最新条目,按时间降序排序;它只是通过左连接查找不存在相同ObjectId的较新条目的所有条目。
SELECT a.*
FROM table1 a
LEFT JOIN table1 b
ON a.ObjectId=b.ObjectId
AND a.time < b.time
WHERE b.ObjectId IS NULL
ORDER BY time DESCAn SQLfiddle to test with。
https://stackoverflow.com/questions/16770683
复制相似问题