【发布时间】:2019-11-25 23:21:05
【问题描述】:
我在如下表中有重复记录。
row no name eff_dt address pin
1 A 12-10-2007 AN 222
2 B 13-10-2007 AS 223
3 A 15-10-2007 AN 222
4 C 20-10-2007 AZ 222
5 C 27-10-2007 AZ 222
6 C 01-12-2007 AZ 222
我使用以下查询删除重复项:
delete from customer where rowid in(select rowid from(select rowid,name,eff_dt, address,pin, rownumber() over partition by name, address,pin order by eff_dt)rn from customer) where rn>1
查询从上表中删除了 rownum 3,5 和 6。
但是根据我的需要,rownum 3 不应该被删除,因为当我将它与 rownum 2 进行比较时它是不同的。但是它被查询删除了,因为它与 rownum 1 重复。
有没有办法以这种方式清除重复记录?就像只比较相邻的行? Name 和 eff_dt 是我的表的主键。
【问题讨论】:
-
这里的“重复”是什么?
-
嗨蒂姆..感谢您的回复..我正在比较姓名、地址和密码以检查重复项。