2012-07-11 118 views
-1

我有一個表在Oracle 11g中是這樣的:甲骨文選擇最後一條記錄特定ID

id date 
--- --- 
1 1-jun 
1 2-jun 
1 3-jun 
2 1-jul 
2 2-jul 
2 3-jul 

我試圖提取對應於每個ID的最新記錄。我試過,max,但我無法讓它工作。我要的是:

id date 
    --- --- 
    1 3-jun 
    2 3-jul 
+1

什麼是列類型,你的約會? 'SELECT id,MAX(date)FROM table GROUP BY id'適用於我。 – Kermit 2012-07-11 19:29:42

+0

它是varchar2,但是當我這樣做:SELECT id,MAX(to_date(date,'yyyy-mm-dd')FROM table GROUP BY id;我得到多個記錄每個ID不是最新的一個 – Victor 2012-07-11 20:35:04

+0

我在這裏找到它: http://stackoverflow.com/questions/612231/how-can-i-select-rows-with-maxcolumn-value-distinct-by-another-column-in-sql 謝謝您的回覆 – Victor 2012-07-11 20:47:00

回答

6

試試這個:

SELECT id, MAX(date) 
    FROM <YOUR-TABLE> 
GROUP BY id 
0

試試這個

'SELECT *FROM (SELECT * FROM table ORDER BY date DESC)tmp GROUP BY Id ';