1. 首先创建一个示例表test
可以看出表test中,其中三行是重复的数据。
2. 查询去重后的数据
可以使用以下sql:
--group by后面就是把表中所有字段都列出来
select * from test t
group by (t.id , t.test01 , t.test02)
having count(1) >= 1
得到结果如下:
3. 删除表中多余的数据删除 , 保持唯一性
注意:保险起见,先把数据备份再进行删除操作
以下sql:
-- 查出了去重后rowid最小的那个 , 之后把其他的都删掉了
delete from test p
where p.ROWID not in
(
select min(t.ROWID) from test t
group by (t.id , t.test01 , t.test02)
having count(1) >= 1
)