首页 新闻 搜索 专区 学院

oracle中如何去除重复值,保留最新的记录

0
悬赏园豆:30 [已解决问题] 解决于 2013-02-28 14:59

例如,查询结果为:

字段1    字段2(日期格式)

a          2012-02-13 19:30:00

b          2012-02-13 18:00:00

a          2012-02-12 09:00:00

b          2012-02-12 09:00:00

我只想得到

字段1    字段2(日期格式)

a          2012-02-13 19:30:00

b          2012-02-13 18:00:00

用DISTINCT会把最新的除掉,而保留时间早的,而我想得到的是时间最新的数据,请问怎么处理啊?

晨之风的主页 晨之风 | 菜鸟二级 | 园豆:391
提问于:2013-02-28 10:38
< >
分享
最佳答案
0

select 字段1,max(字段2)  from 表 group by 字段1

收获园豆:15
Rich.T | 老鸟四级 |园豆:3440 | 2013-02-28 10:44

我这里面的字段1  是经过多个case when语句还有子查询得到的一列,再根据它group不合适啊  

晨之风 | 园豆:391 (菜鸟二级) | 2013-02-28 14:26

@晨之风: 

select 字段1,max(字段2)  from (select 字段1(这里想怎么case都行),字段2 from 表) a group by 字段1

Rich.T | 园豆:3440 (老鸟四级) | 2013-02-28 14:28
其他回答(1)
0

看看这个是否符合要求,根据时间排序获取最新的2条数据。
select * from (select t1.tb_no,to_char(t1.tb_date,'yyyy-mm-dd hh24:mi:ss') from tb1 t1 order by 2 desc) where rownum<3;

收获园豆:15
liangxianming | 园豆:219 (菜鸟二级) | 2013-02-28 11:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册