Мне нужно удалить около 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 |
Я попробовал несколько различных ВЕЬЕТЕ, и слияние в новую таблицу, но не повезло.
ОБНОВЛЕНИЕ: Сработало!
Хорошо после многих сбоев я получил это для работы в DB2.
delete from(
select card_id, time, row_number() over (partition by card_id, time) rn
from card_table) as A
where rn > 1
rn приращения при наличии дубликатов для card_id и времени. Дублированный или второй rn будет удален.
У вас есть 'id' столбец для идентификации записей однозначно? –
У этой информации нет уникального идентификатора. – Nexus
Мы имеем дело с ** дубликатами ** или можем ли вы иметь три (или более) строки с одинаковыми? –