2012-02-12 69 views
1

我有一個表tbldevicevaluelog具有以下佈局:MySQL查詢組最新插入

id | ts | dc | data1 | data2 

ts是一個時間戳,dc是devicecode。 data1data2是最新值。

總共有130個不同的設備代碼。

目標是從每個可用的設備代碼中獲取最新時間和data1

通過下面的查詢,我可以得到結果與設備代碼和最新的時間。

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

問題是如何也得到屬於這個最新時間的data1

+0

試試這個'選擇直流,從tbldevicevaluelog TS,其中TS = MAX(TS)' – 2012-02-12 09:52:27

回答

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 
+0

感謝那些偉大工程! – user1204912 2012-02-12 10:04:13