[oracle]删除一张表中重复数据,保留其id字段最小的sql

  1.表数据结构如下

  [oracle]删除一张表中重复数据,保留其id字段最小的sql

select * from test t
insert into test values(1, 'jerry');
insert into test values(2, 'jerry');
insert into test values(3, 'jerry');
insert into test values(4, 'tom');
insert into test values(5, 'tom');
insert into test values(6, 'jake');
insert into test values(7, 'jake');
insert into test values(8, 'jake');

  

2.删除sql如下

  a.name去重,取最小的字段

  b.使用exists删除重复的数据

delete test a 
where not exists
( select * from (select min(id) id, name from test group by name) b where a.id = b.id)
上一篇:CQRS(命令查询职责分离)和 EDA(事件驱动架构)


下一篇:mysql 获取当前日期及格式化