id字段自增的不用管看oid字段,可以看到有许多重复的记录数,现在的要求是把oid字段重复的记录数,即红线部分(包含后面字段内容要相同),删除,怎么做?

解决方案 »

  1.   

    楼主的绘画功底 确实不咋的 
    其实有一个东西叫做excel的
      

  2.   

    如果不用SQL那就请几个人来查看,相同删了就是。
    哈哈
      

  3.   

    探讨,,我在想首先不管他删除,,先查询select * from test group by oid,这样是不对的。。跟条件 having ..貌似也不行,,后面的数1,0等只是举个例子,,不固定的。。莫非难道此题无解????
      

  4.   

    连接值域字段
    concat(oid,  f1, f2, f3, f4, f5, f6)
    使数据变为
    id v
    1  100111111
    2  100111111
    3  110011111
    4  110111111
    5  110011111
    6  200111111
    7  220101111
    8  220101111
    9  220000111
    10 220111111这样就应该知道怎么做了吧?
    如果还不知道,就吱一声
      

  5.   


    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) 
      

  6.   

    参考
    http://topic.csdn.net/u/20111225/22/7cabedc3-5e9e-42b3-b05b-153ba5a5a67f.html的回复
    ,数据量大,会把数据库玩死,想别的办法处理
      

  7.   


    concat 上一次我是用在搜索替換上... 又從怪署黍這學到東西了.
      

  8.   

    已经解决了,假设表名为tuserdelete from tuser where id not in (select id from (select id,oid,f1,f2,f3,f4,f5,f6 from tuser group by oid,f1,f2,f3,f4,f5,f6) tmp)