Если вы хотите удалить все строки, в которых есть дубликаты, я могу предложить:
DELETE FROM MYTABLE A
WHERE A.ADDRESS IN (SELECT A2.ADDRESS
FROM MYTABLE A2
GROUP BY A2.ADDRESS
HAVING COUNT(DISTINCT A2.USER_ID) > 1
);
Подзапрос должен быть оценен один раз. Индекс на (ADDRESS, USER_ID)
будет полезен для запроса.
Если вы хотите сохранить минимальный идентификатор пользователя (что не так, как вы говорите, но кажется разумным), тогда я бы предложил:
DELETE FROM MYTABLE A
WHERE A.USER_ID > (SELECT MIN(A2.USER_ID)
FROM MYTABLE A2
WHERE A2.ADDRESS = A.ADDRESS
);
Для этого полезен тот же индекс.