当前位置: 代码迷 >> Oracle开发 >> 请问一个查询过滤的有关问题
  详细解决方案

请问一个查询过滤的有关问题

热度:69   发布时间:2016-04-24 06:37:58.0
请教一个查询过滤的问题
有一张表:
编号    项1    项2      日期
1         a         b         20140801
1         c          d        20140805
2         a         b         20140801
3         d         f           20140802
......
我想将编号重复的行只保留一条,且保留日期最大的那一条,应该怎样做

谢谢!

------解决方案--------------------
引用:
有一张表:
编号    项1    项2      日期
1         a         b         20140801
1         c          d        20140805
2         a         b         20140801
3         d         f           20140802
......
我想将编号重复的行只保留一条,且保留日期最大的那一条,应该怎样做
谢谢!

delete from T T1
where exists (select 1 from T WHERE 编号=T1.编号 and 日期>T1.日期)


------解决方案--------------------
用分析函数吧,效率会好些
row_number() over(partition by 编号 order by  日期 )
  相关解决方案