文章目录
- 1.查找重复数据
- 2. 查到重复组的唯一数据
- 3.删除重复数据
- 4.注意重复的内容和删除的记录数是否一致
1.查找重复数据
select gene_entrez_id,count(*) a
from diag_gene
GROUP BY gene_entrez_id
HAVING a > 1
2. 查到重复组的唯一数据
原理 分组后如果组内多个数据,找到id小的那条
SELECT MIN(id) min_id FROM diag_gene GROUP BY gene_entrez_id
3.删除重复数据
之后删除不在上面查到的集合中的数据
由于数据库不支持同时查和删除同一个表,所以只能建立一个中间表temp
DELETE FROM diag_gene where id NOT IN (select temp.min_id from ( SELECT MIN(id) min_id FROM diag_gene GROUP BY gene_entrez_id) temp) ;