数据库:oracle
表名:T1
字段名:ID,BackupDate
说明:ID有可能重复,但凡是重复的ID,BackupDate不会相同。
要求查询的结果:查询出所有的ID和BackupDate,但重复的ID只显示时间最新的一条。
数据:
1,2005-1-1
1,2005-1-2
2,2005-1-3
2,2005-1-6
3,2005-1-5
3,2005-1-8
4,2005-1-4
5,2005-1-2
要求的查询结果:
1,2005-1-2
2,2005-1-6
3,2005-1-8
4,2005-1-4
5,2005-1-2

解决方案 »

  1.   

    SELECT   ID, MAX (backupdate)
        FROM t1
    GROUP BY ID
    如果backupdate的字段类型是varchar的,先用to_date转换一下:
    SELECT   ID, MAX (to_date(backupdate,'YYYY-MM-DD'))
        FROM t1
    GROUP BY ID不会这么简单吧。
      

  2.   

    没错,就是这样
    SELECT   ID, MAX (backupdate)
        FROM t1
    GROUP BY ID
      

  3.   

    select * from (
    select id, BackupDate, row_number() over(partition by id order by BackupDate desc) idd
    from t1 )
    where idd=1