I have unique keys id keys in my table but I have a column with duplicate values? how do I get rid of those, while preserving only one of them like this :
Duplicate
You can try this running multiple times:
delete from mytable where id in (
select max(id)
from mytable
group by name
having count(1) > 1
);
Where multiple times equals the maximum number of repetitions you have in name
column.
Otherwise, you can try this more complex query:
delete from mytable where id in (
select id from mytable
except
(
select min(id)
from mytable
group by name
having count(1) > 1
union all
select min(id)
from mytable
group by name
having count(1) = 1
)
);
Running this query one time only should delete all you need. Haven't tried it though...