表 a结构:A   B
    
     01   2
     02   2
     03   3
     04   5
     05   6
     06   6A是主键,现在要把同一个A数据下,出现两个以上B数据的记录删除,只保留一个(任意).执行结果如下:结构:A   B
    
     01   2
     03   3
     04   5
     05   6谢谢大家了!

解决方案 »

  1.   

    DELETE FROM a
          WHERE ROWID IN (
                   SELECT ROWID
                     FROM (SELECT ROWID,
                                  ROW_NUMBER () OVER (PARTITION BY A ORDER BY ROWID) rn
                             FROM a)
                    WHERE rn > 1)
      

  2.   

    delete from a where rowid not in (select min(rowid) from a group by B)