我有一个定期报告状态的组件列表。查找最新记录每个组件的MySQL
我想编写一个查询来查找按组件分组的最新状态列表。
通常我会用被接受的答案对这个问题描述的解决方案:MySQL order by before group by
但是可以有多个状态报告每一秒,所以不能保证我会检索最新。因此,我想用最近的时间戳找到状态,并且在重复时间戳的情况下,使用最高的PK。
理想我想有像下面这样的查询:
SELECT *
FROM component_status
ORDER BY component_status.timestamp DESC, component_status.component_status_id DESC
GROUP BY component_status.component_id;
但是你不能在ORDER BY后执行GROUP BY。
有没有人有类似的问题,并找到了解决方案?
我看不出你的问题与引用的问题有什么不同。 – Strawberry
@Strawberry引用的帖子使用* single *列上的聚合来获取最近的记录。在这个问题中,最近的记录是由*两个*列确定的。 –
@GiorgosBetsos当然,但原则保持不变。 – Strawberry