如何删除重复数据,只保留一条

1.假设随机删除:


DELETE FROM tablename x
  WHERE EXISTS (SELECT NULL
       FROM (SELECT A, B, MAX(ROWID) max_rowid
               FROM tablename
              GROUP BY A, B) y
      WHERE x.A = y.A
        AND x.B = y.B
        AND x.ROWID < y.max_rowid); 

2.假设跟C有关系,留下C列的最大值;


DELETE FROM tablename x
  WHERE NOT EXISTS (SELECT NULL
       FROM (SELECT A, B, MAX(C) C
               FROM tablename
              GROUP BY A, B) y
      WHERE x.A = y.A
        AND x.B = y.B
        AND x.C = y.C);

你可能感兴趣的:(如何删除重复数据,只保留一条)