这应该很简单:)
这就是我所拥有的:
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 :(得分: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;