-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 に答える