主要是利用Oracle中记录行的rowid唯一。
去除重复记录(注意多次执行直到影响记录为0行)
- delete from WBH_TEMP2 where terminal_id in (
- select terminal_id from WBH_TEMP2 group by terminal_id having count(*)>1)
- and rowid in (select max(rowid) from WBH_TEMP2 group by terminal_id having count(*)>1)
与上面一条等价,这条执行一次即可去除重复记录
- delete from WBH_TEMP2 where terminal_id in (
- select terminal_id from WBH_TEMP2 group by terminal_id having count(*)>1)
- and rowid not in (select min(rowid) from WBH_TEMP2 group by terminal_id having count(*)>1)
大量数据的时候建议用CTAS