• 删除重复记录


    在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢?谢谢! 
    1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 
    select * from people 
    where peopleId in (select  peopleId  from  people  group  by  peopleId  having  count(peopleId) > 1) 
    
    2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录 
    delete from people 
    where peopleId  in (select  peopleId  from people  group  by  peopleId  having  count(peopleId) > 1) 
    and rowid not in (select min(rowid) from  people  group by peopleId  having count(peopleId )>1) 
    
    3、查找表中多余的重复记录(多个字段) 
    select * from vitae a 
    where (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq  having count(*) > 1) 
    
    4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录 
    delete from vitae a 
    where (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) 
    and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1) 
    
    5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录 
    select * from vitae a 
    where (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1) 
    and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1) 
    
    比方说在A表中存在一个字段“name”,而且不同记录之间的“name”值有可能会相同, 
    现在就是需要查询出在该表中的各记录之间,“name”值存在重复的项; 
    Select Name,Count(*) From A Group By Name Having Count(*) > 1 
    
    如果还查性别也相同大则如下: 
    Select Name,sex,Count(*) From A Group By Name,sex Having Count(*) > 1
  • 相关阅读:
    python2在安装pywin32后出现ImportError: DLL load failed 解决方法
    selenium webdriver 启动三大浏览器Firefox,Chrome,IE
    windows下创建Python虚拟环境
    个人随笔
    在Pycharm中使用jupyter笔记本
    python之socket网络编程
    如何创建一个Django项目
    在Ubuntu终端彻底删除软件
    Ubuntu16.04下安装redis
    postgresql11 查看表结构和系统视图
  • 原文地址:https://www.cnblogs.com/forthelichking/p/4164669.html
Copyright © 2020-2023  润新知