2014-01-09 15 views
0

這應該是簡單的:)的MySQL獲得最後值列不是第

以下是我有:

SELECT rid, sid, sdata, max(id), min(FROM_UNIXTIME(epoch)) as fe, max(FROM_UNIXTIME(epoch)) as le, count(id) AS cnt 
    FROM HID130 
GROUP BY rid, sid 
ORDER BY rid, sid DESC; 

**OUTPUT:** 
RID SID SDATA MAX(ID) FE   LE   CNT 
2 0 0 91152 2014-01-09 08:48:00 2014-01-09 08:48:00 1 
2 2 4.52 100856 2013-12-18 02:40:00 2014-01-09 18:30:00 2814 
2 1 13.5 100664 2013-12-18 02:39:00 2014-01-09 18:30:00 2514 

一切都看起來不錯,但有一個例外SDATA。

我想檢索給定的RID/SID組合的最後sdata值。目前,我正在爲RID/SID組合獲取第一個sdata值。

任何想法什麼是最好的方法將獲得rid/sid組合的最後sdata條目?

+0

這是'最大的正每group'問題,這已經回答了很多次在StackOverflow上。按照標籤鏈接查看其他解決方案。 –

回答

0

對於這種類型的查詢,我認爲最簡單的方法是使用substring_index()/group_concat()招:

SELECT rid, sid, 
     substring_index(group_concat(sdata order by id desc), ',', 1), 
     max(id), min(FROM_UNIXTIME(epoch)) as fe, max(FROM_UNIXTIME(epoch)) as le, 
     count(id) AS cnt 
FROM HID130 
GROUP BY rid, sid 
ORDER BY rid, sid DESC; 
+0

認爲我需要刷上substring_index;) – Olagg

相關問題