我希望按开始时间(最新一行)按ID和顺序进行分组。
数据:
begintime id type created_at
2012-12-13 01:00:00 1 type1 2012-12-01 11:39:47
2012-12-13 00:00:00 1 type2 2012-12-02 00:29:10
2012-12-13 03:00:00 2 type3 2012-12-05 00:20:43
2012-12-13 02:00:00 2 type2 2012-12-06 11:31:41
2012-12-13 00:00:00 2 type1 2012-12-07 00:58:11
我想得到:
begintime id type created_at
2012-12-13 01:00:00 1 type1 2012-12-01 11:39:47
2012-12-13 03:00:00 2 type3 2012-12-05 00:20:43
我怎样才能得到它?
答案 0 :(得分:2)
你的标题与你所写的问题相矛盾。它说LATEST
,但你真的想要每created_AT
个ID
。无论如何,
您可以使用子查询,每个created_AT
分别获得最小ID
。然后连接子查询的结果以获取其他列的值。
SELECT a.*
FROM TableName a
INNER JOIN
(
SELECT ID, MIN(created_AT) max_date
FROM TableName
GROUP BY ID
) b ON a.ID = b.ID AND
a.created_AT = b.max_date
答案 1 :(得分:0)
试试这个:
SELECT *
FROM table_name
GROUP BY id
ORDER BY
id ASC,
begintime DESC;
希望它有所帮助!