背景:trade_info表,要根據trade_id去重;門架會產生重復數據,處理數據時只能先都插入表,再根據trade_id去重,業務上認為trade_id相同則記錄相同。
原理:利用oracle的rowid,用trade_id定位后,只留最大rowid的記錄。
結論:表不太大,有效,效率還可以。
DELETE FROM TRADE_INFO A
WHERE ROWID !=
(
SELECT MAX(ROWID) FROM TRADE_INFO B
WHERE A.TRADE_ID=B.TRADE_ID
)