按最近值划分的MySQL组

按最近值划分的MySQL组,mysql,Mysql,我有下表 table prices col id col price col currency_id col timestamp (unix) 我想按它们的ID对货币进行分组,只显示基于时间戳的最新记录 我有下面的查询,其中正确分组但没有获得最新记录,似乎总是获得表中的第一行,而不是最后一行 SELECT id, price, currency_id, timestamp FROM prices GROUP BY currency_id ORDER BY timestamp DESC 我确

我有下表

table prices
col id
col price
col currency_id
col timestamp (unix)
我想按它们的ID对货币进行分组,只显示基于时间戳的最新记录

我有下面的查询,其中正确分组但没有获得最新记录,似乎总是获得表中的第一行,而不是最后一行

SELECT 
id,
price,
currency_id,
timestamp
FROM prices
GROUP BY currency_id
ORDER BY timestamp DESC
我确实变懒了,并尝试这样做,它获取最后6条记录,但顺序并不总是相同的,这意味着每次添加新货币(当前为6)时,我都必须修改查询


我已经有几年没有做过任何MySQL了,我觉得这是最简单的事情了lol:(

这里有一个SQLFIDLE要测试

从这个开始:

SELECT currency_id, 
       Max(timestamp) 
FROM   prices 
GROUP  BY currency_id 
然后将其集成到主查询:

SELECT * 
FROM   prices 
WHERE  ( currency_id, timestamp ) IN (SELECT currency_id, 
                                             Max(timestamp) 
                                      FROM   prices 
                                      GROUP  BY currency_id) 

谢谢你,我知道我走错了方向。子查询完全忘记了。谢谢。这完全符合我的目的:)
SELECT * 
FROM   prices 
WHERE  ( currency_id, timestamp ) IN (SELECT currency_id, 
                                             Max(timestamp) 
                                      FROM   prices 
                                      GROUP  BY currency_id)