重複レコードの削除方法
時には表の中に重複したデータがあり、統計上のトラブルを引き起こし、削除が必要です。重複記録の削除方法を整理します。
1まず表を作成する
3削除
削除操作について具体的に説明します。
1.ORACLEのROWID(一意標示記録)は、ROWIDの方法によって重複記録を削除することができます。
sql
先に重複レコードを検索します。
削除
先に重複レコードを検索します。
削除
1まず表を作成する
create table TEST
(
MESSAGEID NUMBER(38) not null,
CREATIONDATE CHAR(15) not null,
MESSAGESIZE NUMBER(38) not null,
ID NUMBER(5) default 0 not null
)
2.重複記録を作成する3削除
削除操作について具体的に説明します。
1.ORACLEのROWID(一意標示記録)は、ROWIDの方法によって重複記録を削除することができます。
sql
先に重複レコードを検索します。
select *
from test
where rowid in (select a.rowid
from test a, test b
where a.rowid > b.rowid
and a.messageid = b.messageid)
レコードの削除が必要です。削除
delete from test where rowid in (select a.rowid
from test a, test b
where a.rowid > b.rowid
and a.messageid = b.messageid)
2.重複レコードをグループで検索する先に重複レコードを検索します。
select *
from test
where id not in
(select min(id) from test group by messageid having count(*) > 1)
レコードの削除が必要です。削除
delete from (
select * from test where id not in
(select min(id) from test group by messageid having count(*) > 1))
グループの削除性能が低いので、使わないようにしてください。