查询删除所有重复的行,但没有列是唯一的

时间:2017-07-21 02:30:13

标签: sql oracle

我的表结构就像

RID int,
ColA int,
ColB varchar(1) not null,
ColC DATE not null

我现在需要做的是删除重复的行,但没有列是唯一的。

1 个答案:

答案 0 :(得分:1)

如果使用Oracle,您可以使用rowid伪列:

https://docs.oracle.com/cd/B19306_01/server.102/b14200/pseudocolumns008.htm

这样的查询应该有效:

DELETE FROM the_table
WHERE rowid not in
(SELECT MIN(rowid)
  FROM the_table
  GROUP BY RID, ColA, ColB, ColC);