Поиск дубликатов на Oracle Задача В процессе миграции данных по адресам для контрактов, необходимо произвести проверку на наличие дублированных записей. Известно, что у одного контракта может быть только один адрес. В миграционную таблицу MIGR_ADDRESS выгружены данные ID_CONTRACT number(10) — Код контракта V_ADDRESS varchar2(255) — Адрес Как проверить, есть ли в таблице задублированные строки (к одному контракту привязано несколько адресов) и вывести их в порядке убывания количества дублей? Решение Создаю таблицу CREATE TABLE MIGR_ADDRES ( ID_CONTRACT NUMBER, V_ADDRESS VARCHAR2(255) ); / Заполняю таблицу данными INSERT INTO MIGR_ADDRES (ID_CONTRACT, V_ADDRESS) VALUES (1, 'Address 1') INSERT INTO MIGR_ADDRES (ID_CONTRACT, V_ADDRESS) VALUES (2, 'Address 2') INSERT INTO MIGR_ADDRES (ID_CONTRACT, V_ADDRESS) VALUES (2, 'Address 3') INSERT INTO MIGR_ADDRES (ID_CONTRACT, V_ADDRESS) VALUES (3, 'Address 4') INSERT INTO MIGR_ADDRES (ID_CONTRACT, V_ADDRESS) VALUES (3, 'Address 5') INSERT INTO MIGR_ADDRES (ID_CONTRACT, V_ADDRESS) VALUES (3, 'Address 6') COMMIT; Выполняю поиск дублей: SELECT ID_CONTRACT, COUNT(V_ADDRESS) AS "COUNT_ADDR" FROM MIGR_ADDRES GROUP BY ID_CONTRACT HAVING COUNT(V_ADDRESS) > 1 ORDER BY COUNT_ADDR DESC;