Работая в Oracle, вы можете найти дубликаты на некоторых записях. Вы можете удалить повторяющиеся строки, определив их и используя соответствующий адрес строки псевдонима RowID. Перед началом создайте резервную копию таблицы на тот случай, если вам понадобится ссылка после удаления записи.
Шаг
Метод 1 из 4: выявление дубликатов
Шаг 1. Найдите дубликаты
В этом примере мы идентифицируем дубликат «Алан». Убедитесь, что удаляемые записи действительно дублируются, введя SQL-запрос ниже.
Шаг 2. Найдите в столбце «Имя»
Если столбец имеет заголовок «Имя», вам необходимо заменить «имя_столбца» на Имя.
Шаг 3. Найдите другие столбцы
Если вы пытаетесь идентифицировать дубликаты из разных столбцов, например, возраст Алана вместо его имени, введите «Возраст» вместо «имя_столбца» и так далее.
выберите имя_столбца, количество (имя_столбца) из группы таблиц по имени_столбца, имеющему count (имя_столбца)> 1;
Метод 2 из 4: удаление одиночных дубликатов
Шаг 1. Выберите «имя из имен»
После «SQL» (сокращение от Standard Query Language) введите «выберите имя из имен».
Шаг 2. Удалите все строки с повторяющимися именами
После «SQL» введите «удалить из имен, где name = 'Alan';.» Следует отметить, что здесь важно использовать заглавные буквы, чтобы на этом шаге можно было удалить все строки с именем «Алан». После «SQL» введите «фиксация».
Шаг 3. Повторно введите строки без дубликатов
Теперь, когда вы удалили все строки и заменили их на «Алан», заполните одну снова, введя «вставить в значения имени ('Алан');». После «SQL» введите «commit», чтобы создать новую строку.
Шаг 4. Просмотрите новый список
Выполнив описанные выше действия, вы можете проверить, нет ли больше повторяющихся записей, введя «выбрать * из имен».
SQL> выберите имя из имен; ИМЯ ------------------------------ Выбран Алан Ситра Томи Алан Барис. SQL> удалить из имен, где name = 'Alan'; Строка удалена. SQL> совершает; / Фиксация завершена. SQL> вставить в имена значения ('Алан'); строка создана. SQL> совершает; Фиксация завершена. SQL> выберите * из имен; ИМЯ ------------------------------ Выбраны строки Алан Читра Томи.
Метод 3 из 4: удаление нескольких дубликатов
Шаг 1. Выберите RowID, который вы хотите удалить
После «SQL» введите «select rowid, name from names;.»
Шаг 2. Удалите дубликаты
После «SQL» введите «удалить из имен a, где rowid> (выберите min (rowid) из имен b, где b.name = a.name);» удалить дубликаты.
Шаг 3. Проверьте дубликаты
После выполнения вышеуказанных шагов проверьте наличие дубликатов, введя «выберите rowid, name from names;» затем "совершить".
SQL> выберите rowid, имя из имен; ИМЯ ROWID ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Alan AABJnsAAGAAAdfOAAB Alan AABJnsAAGAAAdfOAAC Carrie AABJnsAAGAAAdfOAAD Tom AABJnsAAGAAAdfOAAF Выбраны строки Alan. SQL> удалить из имен a, где rowid> (выберите min (rowid) из имен b, где b.name = a.name); строки удалены. SQL> выберите rowid, имя из имен; ИМЯ ROWID ------------------ ------------------------------ AABJnsAAGAAAdfOAAA Алан AABJnsAAGAAAdfOAAC Кэрри AABJnsAAGAAAdfOAAD Выбранные строки Tom. SQL> совершает; Фиксация завершена.
Метод 4 из 4: удаление строк по столбцам
Шаг 1. Выберите строку
После «SQL» введите «выберите * из имен;» чтобы видеть линию.
Шаг 2. Удалите повторяющиеся строки, указав их столбцы
После «SQL '» введите «удалить из имен a, где rowid> (выберите min (rowid) из имен b, где b.name = a.name и b.age = a.age);» удалить повторяющиеся записи.
Шаг 3. Проверьте дубликаты
Выполнив описанные выше шаги, введите «выберите * из имен»; затем «зафиксируйте», чтобы проверить, действительно ли были удалены дубликаты.
SQL> выберите * из имен; ИМЯ ВОЗРАСТ ------------------------------ ---------- Alan 50 Citra 51 Tomi 52 Alan 50 строки выбраны. SQL> удалить из имен a, где rowid> (выберите min (rowid) из имен b, где b.name = a.name и b.age = a.age); строка удалена. SQL> выберите * из имен; НАЗВАНИЕ ВОЗРАСТ ------------------------------ ---------- Alan 50 Citra 51 Tomi Выбрано 52 строки. SQL> совершает; Фиксация завершена.
Предупреждение
-
Создайте дублирующую таблицу в своем логине, чтобы ее можно было использовать в качестве ссылки на контент, когда никакие данные не были удалены (если у вас есть какие-либо вопросы).
SQL> создать таблицу alan.names_backup как select * from names; Таблица создана.