在列中查询以删除重复的记录(oracle)

  我们有一个表,字段A有重复的记录,我们想要编写一个SQL 查询来让字段A作为主键。在这样的情况下,我们需要一个删除查询来删除重复的记录,这样字段A才能具有惟一的数值。

  Brian Peasland:

  要删除重复的数据行,可以使用如下的语句:

  DELETE FROM my_table
  WHERE rowid NOT IN ( SELECT MAX(ROWID) FROM my_table
  GROUP BY colA,colB,colC );

  在GROUP BY子句中,列出你的表中所有的字段,或者你认为应该成为主键字段的字段。子查询可以得到这些分组的最大行id。DELETE可以删除所有这些行id的数值。