-1

我想按 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

我怎么才能得到它?

4

2 回答 2

3

您的标题与您所写的问题相矛盾。它说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
于 2013-03-21T23:54:08.943 回答
0

尝试这个:

SELECT * 
FROM table_name 
GROUP BY id 
ORDER BY 
  id ASC, 
  begintime DESC;

希望能帮助到你!

于 2013-03-22T00:05:41.327 回答