Не очень хорошее зрелище, и я боюсь, что у меня нет хороших новостей для вас.
Это распространенная проблема в базах данных, особенно если персонал по вводу данных недостаточно подготовлен. Одна из основных целей обучения вводу данных состоит в том, чтобы сделать проблему понятной и показать способы ее решения. Что-то, чтобы иметь в виду в будущем.
К сожалению, нет никакой "волшебной палочки", которая очистит ваши данные для вас. Извините, но перед вами стоит одна из самых утомительных задач в обслуживании базы данных. Вам придется в основном удалять дубликаты вручную, и для работы требуется больше редактора, чем администратора базы данных.
Если у вас есть миллионы записей, из которых, возможно, миллион фактически является дубликатами, я бы оценил, что эксперту потребуется полный рабочий день, по крайней мере, два года - и, вероятно, дольше - для решения вашей проблемы: Чтобы сделать это за два года, потребуется зафиксировать 2000 записей в день с перерывом на выходные и две недели отпуска.
В конце концов, единственный верный способ удалить все дубликаты - это сравнить их все и удалить их по одному. Но есть много хитростей, которые вы можете использовать, чтобы избавиться от блоков из них сразу. Вот некоторые из них, которые я могу придумать с вашей выборкой данных:
- Измените «Дейв» на «Дэвид» в полях имени и фамилии. (Убедитесь, что на самом деле ни у кого нет фамилии «Дейв».)
- Измените все экземпляры «Джонс Дэвид» на «Дэвид Джонс». (Убедитесь, что нет людей по имени «Джонс Дэвид».)
- Измените «1 / F» на «Этаж 1».
Идея состоит в том, чтобы сосредоточиться на некоторых полях, и в этих полях все дубликаты должны быть точными дубликатами. Как только вы это сделаете, вы удалите все записи с целевыми значениями в полях, за исключением записи с первичным ключом записи, которую вы хотите сохранить (если ваша таблица не имеет ключей, вам нужно будет найти другую способ сделать это, например, выбрать верхнюю запись в новую таблицу).
Этот метод ускоряет работу с записями с большим количеством дубликатов. Если у вас есть только несколько дубликатов, быстрее идентифицировать их по одному. Один из способов сделать это быстро - перейти в режим редактирования таблицы, поработать с определенным полем (например, с полем почтового индекса в этом случае) и указать уникальное значение в этом поле, если вы хотите пометить его для удаления. (в этом случае, возможно, один ноль). Затем вы можете периодически удалять все записи с этим значением в поле.
Вам также потребуется отсортировать данные несколькими способами, чтобы найти дубликаты, которые, как вам кажется, вы уже знаете.
Что касается ваших заметок, не пытайтесь определить все способы, которыми данные были испорчены. Как только вы идентифицируете одну запись как копию другой, вам все равно, что с ней не так, вам просто нужно избавиться от нее. Если у вас есть две записи, и каждая содержит данные, которые вы хотите сохранить, а другая отсутствует, вам придется объединить их и удалить одну из них. А затем переходите к следующему, следующему и следующему ...