2012-05-02 113 views
0

比如我有這些表...MYSQL - 如何獲得每個記錄的最高價值?

ID | SCORE | DATE 
1 | 10 | 2-2-2012 
2 | 20 | 2-2-2012 
3 | 20 | 2-2-2012 
2 | 5  | 4-2-2012 
4 | 30 | 4-5-2012 
1 | 20 | 5-5-2012 

我想每個ID與最近日期的分數。

我的期望輸出...

ID | SCORE | DATE 
1 | 20 | 5-5-2012 
2 | 5  | 4-2-2012 
3 | 20 | 2-2-2012 
4 | 30 | 4-5-2012 

這可能嗎?

在此先感謝!

回答

2

嘗試

SELECT id, score, date 
FROM table1 t1 
WHERE date=(SELECT MAX(t2.date) 
       FROM table1 t2 
       WHERE t1.id = t2.id); 
+0

你的兩個和zerkms作品但我選擇你的,因爲它更短。謝謝! – JohnSmith

2
SELECT t1.* 
     FROM tbl t1 
INNER JOIN (SELECT MAX(date) max_date, 
        id 
       FROM tbl 
      GROUP BY id) t2 ON t1.id = t2.id 
         AND t1.date = t2.max_date 
0

在你不在乎得到最高分的情況下,如果兩行有相同的ID具有相同日期的情況下:

select *,max(DATE) as max_date FROM table group by ID order by max_date desc; 
相關問題