Oracle SQL: Как найти и удалить дубликатыOracle SQL: Поиск и удаление дубликатов (одинаковое значение в разных столбцах)
У меня есть только доступ только для чтения к Oracle (Можно использовать только SELECT, команды).
Logic: Два пользователя 'A' & 'В', имеющие такое же имя компании & Имя
Колонки для извлечения:
ID of A
ID of B
Company Name of A
Company Name of B
First Name of A
First Name of B
Я использую ниже запроса:
select a.id, b.id, a.name, b.name, a.company, b.company from
(select id, company, name where country = 'USA') a,
(select id, company, name where country = 'UK') b
where a.id <> b.id
and lower(a.company) = lower(b.company)
and a.username = b.username
Здесь я получаю каждый ряд в два раза (см таблицу ниже):
A_ID .......... B_ID .......... A_NAME .... ...... B_NAME .......... A_COMPANY .......... B_COMPANY
3592382 .... 1977967 .... Peter ...... .......... Питер ................. ABC ..................... A.B.C.
1977967 .... 3592382 .... Peter ................ Peter ................. A.B.C. ..................... A.B.C.
5949363 .... 5941818 .... Joseph ............ Joseph .............. X.Y.Z. ..................... X.Y.Z.
5941818 .... 5949363 .... Joseph ............ Joseph .............. X.Y.Z. ..................... X.Y.Z.
Другие упомянули несколько что-то не так с вашим синтаксисом, но я вижу более фундаментальную проблему. Почему американские и британские компании считаются дублирующими, когда они имеют одно и то же имя? –