Je to proto, že ROWNUM je pseudosloupec, což znamená, že fyzicky neexistují. Můžete lépe použít rowid
pro smazání záznamů.
Chcete-li odstranit duplikáty, můžete to zkusit takto:
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 )