重複するテーブルトランザクションがあります。最小IDのレコードを保持し、DATE、AMOUNT、REFNUMBER、PARENTFOLDERIDの4つのフィールドに基づいてすべての重複を削除したいと思います。私はこのクエリを作成しましたが、これが効率的な方法で作成できるかどうかはわかりません。もっと良い方法があると思いますか?実行時間が気になるのでお願いします。
DELETE FROM TRANSACTION
WHERE ID IN
(SELECT FIT2.ID
FROM
(SELECT MIN(ID) AS ID, FIT.DATE, FIT.AMOUNT, FIT.REFNUMBER, FIT.PARENTFOLDERID
FROM EWORK.TRANSACTION FIT
GROUP BY FIT.DATE, FIT.AMOUNT , FIT.REFNUMBER, FIT.PARENTFOLDERID
HAVING COUNT(1)>1 and FIT.AMOUNT >0) FIT1,
EWORK.TRANSACTION FIT2
WHERE FIT1.DATE=FIT2.DATE AND
FIT1.AMOUNT=FIT2.AMOUNT AND
FIT1.REFNUMBER=FIT2.REFNUMBER AND
FIT1.PARENTFOLDERID=FIT2.PARENTFOLDERID AND
FIT1.ID<>FIT2.ID)