Oracle 根据主键去重(最高效)

-- 建表语句
create table project
(
    ID     NUMBER,
    NAME   VARCHAR2(20),
    COURSE VARCHAR2(20),
    SCORE  NUMBER
);

INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (1, '张三', '语文', 90);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (2, '张三', '数学', 80);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (3, '张三', '英语', 70);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (4, '张三', '历史', 60);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (5, '张三', '生物', 58);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (6, '张三', '物理', 50);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (7, '李四', '语文', 96);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (8, '李四', '数学', 93);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (9, '李四', '英语', 85);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (10, '李四', '历史', 43);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (11, '李四', '生物', 29);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (12, '李四', '物理', 69);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (1, '张三', '语文', 90);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (2, '张三', '数学', 80);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (5, '张三', '生物', 58);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (6, '张三', '物理', 50);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (11, '李四', '生物', 29);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (12, '李四', '物理', 69);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (6, '张三', '物理', 50);
INSERT INTO project (ID, NAME, COURSE, SCORE) VALUES (11, '李四', '生物', 29);
 

-- 查询重复数据
select ID, NAME, COURSE, SCORE from project a
where a.rowid>(select min(b.rowid) from project b where b.ID=a.ID);

 -- 删除重复数据
delete from project a
where a.rowid>(select min(b.rowid) from project b where b.ID=a.ID);

-- 查看
select * from project;
 

 

猜你喜欢

转载自blog.csdn.net/weixin_54108529/article/details/124455412