如下,表TAB01
create table tab01(a int, b int, c int);
INSERT INTO tab01 values(1,1,0);
INSERT INTO tab01 values(1,1,1);
INSERT INTO tab01 values(1,1,2);
INSERT INTO tab01 values(1,2,0);
INSERT INTO tab01 values(1,2,1);
INSERT INTO tab01 values(1,2,2);
commit;
a b c
1 1 0
1 1 1
1 1 2
1 2 0
1 2 1
1 2 2
去掉后最后是
a b c
1 1 0
1 2 0
SQL为:
DELETE FROM tab01
WHERE rowid IN
(SELECT rowid FROM
(
SELECT rowid, a, b, c, row_number() over(partition by a, b order by rowid) rn FROM tab01
)
WHERE rn > 1
);