Mysql查询组最新插入

时间:2012-02-12 09:41:01

标签: mysql group-by

我有一张表tbldevicevaluelog,其中包含以下布局:

id | ts | dc | data1 | data2

ts是时间戳,dc是设备代码。 data1data2是最新值。

总共有130种不同的设备代码。

目标是从每个可用的设备代码中获取最新时间和data1

通过下面的查询,我可以得到设备代码和最新时间​​的结果。

SELECT dc, MAX(ts) FROM tbldevicevaluelog GROUP BY dc

问题是如何获得属于最新时间的data1

1 个答案:

答案 0 :(得分:1)

使用相同的设备代码和时间戳将结果重新加入到您的表中。

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