我有一个带有 unix 时间戳和事物描述的表。该表中的每件事都会有多个条目,所有条目都有不同的时间戳。我需要为每件事选择最后五个时间戳。
如果事物 A 有 100 行,事物 B 有 130 行,事物 C 有 20 行,我想查看每个事物的最后 5 行 - 查询应返回 15 条记录。
我尝试过 limit,但这给了我查询中的最后五个。
如有任何建议,我们将不胜感激。
最佳答案
您可以使用ROW_NUMBER
(MySQL 8.0):
SELECT *
FROM (SELECT *,ROW_NUMBER() OVER(PARTITION BY col1 ORDER BY time_col DESC) rn
FROM tab) sub
WHERE rn <= 5;
关于MYSQL - 根据某个字段返回最近5行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47580735/