データベースで約 300,000 の重複を削除する必要があります。Card_id
列の重複をチェックしてから、タイムスタンプの重複をチェックしたいと考えています。次に、1 つのコピーを削除し、1 つを保持します。例:
| Card_id | Time |
| 1234 | 5:30 |
| 1234 | 5:45 |
| 1234 | 5:30 |
| 1234 | 5:45 |
したがって、残りのデータは次のようになります。
| Card_id | Time |
| 1234 | 5:30 |
| 1234 | 5:45 |
いくつかの異なる削除ステートメントを試し、新しいテーブルにマージしましたが、うまくいきませんでした。
更新:うまくいきました!
多くの失敗の後、これをDB2で機能させることができました。
delete from(
select card_id, time, row_number() over (partition by card_id, time) rn
from card_table) as A
where rn > 1
card_id と time の重複がある場合、rn は増加します。複製された、または 2 番目の rn は削除されます。