我需要在我的数据库中删除大约 300,000 个重复项。我想检查Card_id
重复的列,然后检查重复的时间戳。然后删除一份并保留一份。例子:
| 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 增加。重复的或第二个 rn 将被删除。