2013-03-21 107 views
-1

我想按编号顺序按开始时间排序(最新一行)。分组顺序按最新排序

数据:

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

你能解释一下你需要什么吗? – Barranka 2013-03-21 23:54:13

回答

2

您的标题与您所写的问题相矛盾。它说LATEST,但你真的想要第一个created_ATID。无论如何,

您可以使用子查询,每ID分别获取最小created_AT。然后将子查询的结果连接回来以获取其他列的值。

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

我不明白为什么这是降低':D' – 2013-03-21 23:58:46

0

试试这个:

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

希望它能帮助!