Usuń duplikaty rekordów za pomocą rownum w sql
Pomóż mi znać skasowane rekordy na podstawie rownum, gdzie nawet identyfikator jest duplikatem, to się nie zdarzy, ale jeśli tak jest.
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
Query Tried, ale usuwa wszystkie 6 wierszy.
DELETE FROM a
WHERE rownum not in
(SELECT MIN(rownum)
FROM a
GROUP BY name);
Ale to zapytanie daje poprawny wynik:
SELECT MIN(rownum)
FROM a
GROUP BY name
ROWNUM
----------
1
2
3
Spodziewany wynik :
ROWNUM ID NAME
---------- ---------- ----------
4 1 leo_1
5 2 leo_2
6 3 leo_3