首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除重复行- Oracle

删除重复行- Oracle
EN

Stack Overflow用户
提问于 2012-10-05 18:35:38
回答 2查看 6.3K关注 0票数 1

这是我的一些数据的一个例子。我正在尝试删除QueryID和RoyID与表中其他条目相同的所有额外数据,但是,我希望至少保留一条记录。我不确定是否能够在ID列上使用min或max函数,因为有些记录具有ID,如DEMO_12345等。

代码语言:javascript
复制
ID          QUERY_ID ROYALTY_ID
RTSQR1652   SQ1421  ROY25644005
RTSQR1653   SQ1421  ROY25636406
RTSQR1654   SQ1421  ROY25636557
RTSQR1655   SQ1421  ROY25636558
RTSQR1656   SQ1421  ROY25636559
RTSQR1657   SQ1421  ROY25636560

我在考虑使用ROWID而不是ID。下面的查询可以吗?

代码语言:javascript
复制
 DELETE FROM RT_SOURCE_QUERY_ROYALTIES WHERE ROWID NOT IN (
 SELECT MAX(ROWID) FROM RT_SOURCE_QUERY_ROYALTIES GROUP BY ROYALTY_ID, QUERY_ID);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-05 18:43:39

只需运行一个测试

代码语言:javascript
复制
drop table test1;

create table test1 (a number,b number, c number);

insert into test1 values (1,1,2);
insert into test1 values (1,1,3);
insert into test1 values (1,2,2);
insert into test1 values (2,1,2);
insert into test1 values (2,2,2);
insert into test1 values (1,1,2);

select * from test1;

delete from test1 where rowid not in (select max(rowid) from test1 group by a,b);

select * from test1;

就像预期的那样,不是吗...

代码语言:javascript
复制
table TEST1 dropped.
table TEST1 created.
1 rows inserted.
1 rows inserted.
1 rows inserted.
1 rows inserted.
1 rows inserted.
1 rows inserted.
A B C
- - -
1 1 2 
1 1 3 
1 2 2 
2 1 2 
2 2 2 
1 1 2 

 6 rows selected 

2 rows deleted.
A B C
- - -
1 2 2 
2 1 2 
2 2 2 
1 1 2 
票数 7
EN

Stack Overflow用户

发布于 2012-10-05 18:41:36

http://www.dba-oracle.com/t_delete_duplicate_table_rows.htm

使用自连接删除重复行

检测重复行的最有效方法是针对表本身联接表,如下所示。

代码语言:javascript
复制
select 
   book_unique_id, 
   page_seq_nbr, 
   image_key 
from 
   page_image a 
where 
   rowid > 
     (select min(rowid) from page_image b 
      where 
         b.key1 = a.key1 
      and 
         b.key2 = a.key2 
      and 
         b.key3 = a.key3 
      );

请注意,必须在SQL where子句中指定使该行重复的所有列。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12744428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档