Điều này là do ROWNUM là một cột giả ngụ ý rằng chúng không tồn tại trên thực tế. Bạn có thể sử dụng rowid
tốt hơn để xóa các bản ghi.
Để loại bỏ các bản sao, bạn có thể thử như sau:
DELETE FROM mytable a
WHERE EXISTS( SELECT 1 FROM mytable b
WHERE a.id = b.id
AND a.name = b.name
AND a.rowid > b.rowid )