数据库: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
表名: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
FROM t1
GROUP BY ID
如果backupdate的字段类型是varchar的,先用to_date转换一下:
SELECT ID, MAX (to_date(backupdate,'YYYY-MM-DD'))
FROM t1
GROUP BY ID不会这么简单吧。
SELECT ID, MAX (backupdate)
FROM t1
GROUP BY ID
select id, BackupDate, row_number() over(partition by id order by BackupDate desc) idd
from t1 )
where idd=1