表中有多条重复数据,如何使用sql语句删除表中重复数据,并要求只保留一条数据?

解决方案 »

  1.   

    最简单的,重复的数据只取max或者min(1条)。
    http://blog.163.com/yaxctgu@126/blog/static/16267031820112723924742/
      

  2.   

    row_number() over(partition by xxx) as rowid 把rowid不是1的删除 不就好了
      

  3.   

    建个临时表,把distinct数据导进去,删掉原数据,再导回。
      

  4.   

    删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录 
    delete from people 
    where   peopleName in (select peopleName    from people group by peopleName      having count(peopleName) > 1) 
    and   peopleId not in (select min(peopleId) from people group by peopleName     having count(peopleName)>1)