我有一个包含以下列的表格:
ID, sysid, x, y, z, timereceived
ID 是每一行的唯一编号。
sysid 是特定设备的 ID 号(其中大约有 100 个不同)
x、y 和 z 是从设备接收到的数据。 (完全随机数)
timereceived 是接收数据的时间戳。
我需要一个 SQL 查询来显示设备 a、设备 b、设备 c 等的最后插入的行。
我一直在研究许多不同的 Select 语句,但从来没有找到任何有效的方法。我设法通过使用 group by 获得唯一的行,但其余信息是随机的(或者至少感觉非常随机)。
谁能帮帮我?
此表中可能有数十万条记录。
最佳答案
SELECT id, sysid, x, y, z, timereceived
FROM tbl
INNER JOIN ( SELECT sysid, max(timereceived) as "timereceived"
FROM tbl
GROUP BY sysid ) most_recent
USING (sysid, timereceived)
这将为您提供完整的行,其中 timereceived
是每个 sysid
的最新行。
关于sql - 在 MySQL 中选择多个唯一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2874713/