2012-07-11 108 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 ';