delete from test
where rowid
in
(
select min(rowid) from test group by a1,a2
)
where rowid
in
(
select min(rowid) from test group by a1,a2
)
解决方案 »
- oracle日志中是否有select查询的记录
- 往 Oracle的Blob字段里插入数据报错问题 ORA-00932.
- 大师们帮忙出谋画测, 4G的内存, 3.2G的双志强CPU, 机器上如何配置oralce9i , 性能会最好,速度会最快?
- Oracle命令的输入位置
- 用户口令忘了怎么办?
- 请问在AIX下执行sqlplus / as sysdba是什么意思?
- 急!!高分求教一很简单的问题
- 小小的调查,大家在写ORACLE程序的时候,是用OCI多,还是采用ProC多
- Oracle 触发器,个人对触发器不怎么熟悉,希望能写明白点,谢谢
- Oracle数据库登陆报错ORA-12514
- 一个SQL查询问题( ORARichard刚才的问题还是没有搞定:-( )
- 简单的sql语句,谁知道怎么写?在线等待,急用!!
2,8I后建议试着使用以下方法:
delete test where rowid in (
select rid from
(select rowid rid,row_number() over(partition by a1,a2 order by a1 desc) rn from test)
where rn > 1);
由于有一个SORT,在删除时建议调大SESSION的SORT_AREA_SIZE(9i自动PGA管理的化,PGA总量足够大就可以了)
3,如果大量都是重复的,还是干脆做temp表吧:-)
where rowid =(select max(rowid) from test group by a1,a2)