Löschen Sie doppelte Datensätze mit rownum in SQL

Bitte helfen Sie mir zu wissen, ob Löschdatensätze basierend auf dem Rownum vorhanden sind, bei dem sogar die ID doppelt vorhanden ist. In diesem Fall wird dies jedoch nicht passieren.

select rownum,a.* from a;

    ROWNUM         ID NAME
---------- ---------- ----------
         1          1 leo_1
         2          2 leo_2
         3          3 leo_3
         4          1 leo_1
         5          2 leo_2
         6          3 leo_3

Abfrage versucht, löscht jedoch alle 6 Zeilen.

DELETE FROM a
WHERE rownum not in
(SELECT MIN(rownum)
FROM a
GROUP BY name);

Diese Abfrage liefert jedoch das richtige Ergebnis:

SELECT MIN(rownum)
FROM a
GROUP BY name

    ROWNUM
----------
         1
         2
         3

Erwartetes Ergebnis :

    ROWNUM         ID NAME
---------- ---------- ----------
         4          1 leo_1
         5          2 leo_2
         6          3 leo_3

Antworten auf die Frage(3)

Ihre Antwort auf die Frage