我需要刪除我的數據庫中大約300,000個重複項。我想檢查Card_id
列的重複項,然後檢查重複的時間戳。然後刪除一個副本並保留一個副本。例如:SQL檢查一列中的重複項並刪除另一列
| Card_id | Time |
| 1234 | 5:30 |
| 1234 | 5:45 |
| 1234 | 5:30 |
| 1234 | 5:45 |
所以剩餘的數據將是:
| Card_id | Time |
| 1234 | 5:30 |
| 1234 | 5:45 |
我嘗試了好幾種不同的DELETE語句,並融合成一個新表,但沒有運氣。
更新:明白了!
很多失敗後,我得到了這個工作的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和時間有重複時遞增。重複的或第二個rn將被刪除。
你有一個'id'列唯一標識記錄? –
這個數據沒有唯一的ID。 – Nexus
我們是嚴格處理**重複**還是可以有三個(或更多)相同的行? –