oracle delete行,oracle删除重复行delete repeat

oracle删除重复行delete repeat

2015-09-09

数据库产生大量的重复数据需要批量删除。

1、 创建表保存rowid

create table t1 (r varchar2(20));

2、insert into t1 select max(rowid) from chat_recorder_201509 where create_time between TO_DATE('20150907 19:00:00',

'YYYYMMDD HH24:MI:SS') and TO_DATE('20150908 01:00:00', 'YYYYMMDD HH24:MI:SS') group by RECORDER_ID having count(*) > 1;

28335 rows created.

3、删除rowid包含在t1表

delete from chat_recorder_201509 where rowid in (select r from t1);

28335 rows deleted.

4、检查结果select count(*) from chat_201509 where create_time between TO_DATE('20150907 19:00:00', 'YYYYMMDD HH24:MI:SS') and TO_DATE('20150908 01:00:00', 'YYYYMMDD HH24:MI:SS');

5、==========================================

select vst_phone from message_new where message_id in (select message_id from (select a.message_id,row_number() over(partition by message order by message) as n from message_new a where company_id=39415 and create_time > trunc(sysdate-2)) where n > 1);

6、delete from message_new where message_id in (select message_id from (select a.message_id,row_number() over(partition by message,vst_phone order by message) as n from message_new a where company_id=39415 ) where n > 1);

7、select user_name,count(1) row_number from customer group by user_name having count(user_name) > 1;

8、select cid,count(1) from CONFIG group by cid having count(1) > 150 order by count(1);

分类:数据库 | 标签: oracle |

相关日志

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值