按最近值划分的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)