How to quickly delete duplicate data in Oracle tables

method one:

In Oracle, you can use the DELETE statement combined with ROWID and a subquery to delete duplicate records. Here's an example:

DELETE FROM your_table
WHERE ROWID NOT IN (
    SELECT MAX(ROWID)
    FROM your_table
    GROUP BY column1, column2, ... -- 列出用于判断重复的列
);

raw data:

Example:

DELETE FROM SJS.CGGL_FWZX_USC_WS_SPYJ_SSFW
WHERE ROWID NOT IN (
    SELECT MAX(ROWID)
    FROM SJS.CGGL_FWZX_USC_WS_SPYJ_SSFW
    GROUP BY ID -- 列出用于判断重复的列
);
COMMIT ;

result:

Method Two:

DELETE FROM your_table
WHERE id NOT IN (
    SELECT MIN(id)
    FROM your_table
    GROUP BY A, B, C
   
);

Guess you like

Origin blog.csdn.net/XikYu/article/details/134416464