Как удалить определенные c записей, в которых есть повторяющиеся записи - PullRequest
1 голос
/ 03 апреля 2020

Извините, я просто использую этот аккаунт от моего старого друга, он сказал, что хочет, чтобы он имел более высокую репутацию. lol

У меня есть таблица, которая выглядит следующим образом, и я хочу удалить записи, в которых следующие дубликаты основаны на столбцах first_name, middle_name и last_name и alias. Сохраняя первую запись или те, которые имеют lowest возможный идентификатор enter image description here

1 Ответ

1 голос
/ 03 апреля 2020

Вы можете сделать это с помощью самостоятельного соединения в операторе delete:

delete t
from tablename t inner join tablename tt
on tt.first_name = t.first_name and tt.last_name = t.last_name and tt.alias = t.alias  
and tt.id < t.id;

или удалив все строки с id с, отличными от мин id с каждой комбинации first_name, last_name и alias:

delete from tablename
where id not in (
  select t.minid from (
    select min(id) minid
    from tablename
    group by first_name, last_name, alias
  ) t
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...