我有一个表 tbldevicevaluelog
,其布局如下:
id | ts | dc | data1 | data2
ts
是时间戳,dc
是设备代码。 data1
和data2
为最新值。
总共有 130 种不同的设备代码。
目标是从每个可用的设备代码中获取最新的时间和data1
。
通过下面的查询,我可以获得包含所有设备代码和最新时间的结果。
SELECT dc, MAX(ts) FROM tbldevicevaluelog GROUP BY dc
问题是如何也得到属于这个最新时间的data1
?
最佳答案
使用相同的设备代码和时间戳将您的结果连接回您的表格。
SELECT tg.dc, tg.latest, t.data1
FROM tbldevicevaluelog t
JOIN
( SELECT dc, MAX(ts) as latest FROM tbldevicevaluelog GROUP BY dc ) tg
ON tg.dc=t.dc AND tg.latest=t.ts
关于mysql查询组最新插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9247827/