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
);