我的表看起來像這樣(我使用MySQL):使用ORDER BY和GROUP BY一起
m_id | v_id | timestamp
------------------------
6 | 1 | 1333635317
34 | 1 | 1333635323
34 | 1 | 1333635336
6 | 1 | 1333635343
6 | 1 | 1333635349
我的目標是把每一個M_ID時間,由最高時間戳順序。
結果應該是:
m_id | v_id | timestamp
------------------------
6 | 1 | 1333635343
34 | 1 | 1333635336
我寫此查詢:
SELECT * FROM table GROUP BY m_id ORDER BY timestamp DESC
但是,結果是:
m_id | v_id | timestamp
------------------------
34 | 1 | 1333635323
6 | 1 | 1333635317
我認爲它會導致因爲它第一次做GROUP_BY,然後對結果進行排序。
任何想法?謝謝。要做到這一點
使用'MAX'從您的組 – Nanne 2012-04-05 14:45:20
一個'GROUP BY'條款沒有聚合函數選擇最大(如:'COUNT(),SUM(),MAX()')沒有任何意義可言。它讓我感到困惑,MySQL甚至允許這樣做。想想看,如果你對這些團體沒有做任何事情,你爲什麼要分組? – NullUserException 2012-04-05 14:47:48
如果m_id有兩個不同的v_id,該怎麼辦?期望的結果是什麼? – 2012-04-05 14:49:56