удалить дубликаты из таблицы? (не в выборке просто со словом distinct, а чтобы дублирующиеся строчки из таблицы удалились совсем)
вот такая допустим таблица
create table test.empl (
employee_id INT,
employee_name VARCHAR(50),
employee_branch VARCHAR(50)
);
insert into test.empl (employee_id, employee_name, employee_branch)
values (1, 'Петров Д.С.', 'Новосибирск'),
(1, 'Петров Д.С.', 'Новосибирск'),
(3, 'Волков О.Л.', 'Новосибирск'),
(4, 'Самойлов В.А.', 'Иркутск');
а вот запрос:
delete from empl
where employee_id in (
select employee_id from (
select employee_id,
row_number() over (partition by employee_id order by employee_id) as duplicate
from empl) as sub
where duplicate > 1);
в моем запросе он получается удалит обе строчки из таблицы, где employee_id будет дублироваться, а хотелось бы 1 строчку все таки оставить)
Потому что ты не правильно удаляешь
а как правильно удалить? я пока не могу придумать
Обсуждают сегодня