How to find duplicate records and delete duplicate in oracle PLSQL

Find Duplicate Records Query with TempT as ( Select LOCATION_ID_FK,PRODUCT_BARCODE_FK, row_number() OVER (PARTITION BY LOCATION_ID_FK,PRODUCT_BARCODE_FK order by LOCATION_ID_FK ) C from stock z where STK_DATE = '13-02-22' group by LOCATION_ID_FK,PRODUCT_BARCODE_FK,StockId ) Select * from TempT where c > 1 ---------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------- Delete Duplicate Records in oracle Delete from zrs_stock a where a.rowid in (select rowid from (select rowid, row_Number() over(partition by STK_LOCATION_ID_FK,STK_PRODUCT_BARCODE_FK order by rowid) dup from zrs_stock where STK_DATE = '20-02-22') where dup > 1); ---------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------- this will not work in oracle this query will work in sql with TempT as ( Select LOCATION_ID_FK,PRODUCT_BARCODE_FK, row_number() OVER (PARTITION BY LOCATION_ID_FK,PRODUCT_BARCODE_FK order by LOCATION_ID_FK ) C from stock z where STK_DATE = '13-02-22' group by LOCATION_ID_FK,PRODUCT_BARCODE_FK,StockId ) Delete from TempT where c > 1

0 Comments