Dzieje się tak, ponieważ ROWNUM jest pseudokolumną, co oznacza, że fizycznie nie istnieją. Możesz lepiej użyć rowid
aby usunąć rekordy.
Aby usunąć duplikaty, możesz spróbować w ten sposób:
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 )