database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 41608 게시물 읽기
No. 41608
중복데이터 삭제
작성자
선이
작성일
2018-07-30 00:13
조회수
4,225

안녕하세요.

백업데이트 복원시키다가 중복데이터가 발생했습니다.

테이블에 인덱스나 PK가 없어요...ㅜㅜ

중복으로 들어간 데이터를 삭제하고 싶습니다.

도움부탁드립니다. 가능할까요?

 

테이블 abc

id | name | gubun | posnr | itseq | desc | flag | ....

A | AAA | 5 | 0010 | 0010 | 품목A| N

A | AAA | 5 | 0010 | 0010 | 품목A| N

A | AAA | 5 | 0010 | 0010 | 품목A| N

A | AAA | 5 | 0010 | 0010 | 품목A| N

A | AAA | 5 | 0010 | 0010 | 품목A| N

B | BBB | 5 | 0010 | 0010 | 품목B| N

B | BBB | 5 | 0010 | 0010 | 품목B| N

 

==>

A | AAA | 5 | 0010 | 0010 | 품목A| N | ....

B | BBB | 5 | 0010 | 0010 | 품목B| N | ....

이 글에 대한 댓글이 총 3건 있습니다.

안녕하세요. 중복된 값중 한 rowid만 (최소, 최대등) 남기고 삭제하는 방법이 있을 것 같습니다.

정상규(pajama)님이 2018-07-30 10:07에 작성한 댓글입니다.

삭제 시....

중복 값을 알아야 하는데

종복된 값으로 group 해야 합니다.

-------

삭제대상 찾기..

select rowid, a.* from abc a

where rowid not in (select min(ROWID)

from abc

group by 컬럼1,컬럼2,컬럼3,컬럼4,.......)

----------------------------------------------

 

delete abc

where rowid not in (select min(ROWID) from abc

group by 컬럼1,컬럼2,컬럼3,컬럼4,.......)

윤승환(felcon00)님이 2018-07-31 11:23에 작성한 댓글입니다.
이 댓글은 2018-07-31 12:10에 마지막으로 수정되었습니다.

모두 감사합니다.^^

선이님이 2018-08-01 01:50에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
41611업무 연속성과 데이터 백업 문의드립니다.
박래남
2018-08-05
3702
41610구문 실행해주는 프로시저 작성 [1]
질문
2018-08-02
3877
41609[질문]특정 컬러명을 포함하고 있는 테이블을 찾으려면??? [1]
신승익
2018-07-30
3862
41608중복데이터 삭제 [3]
선이
2018-07-30
4225
41607DBA 입문자입니다. 실행계획 관련 질문 부탁드리겠습니다.
DBA개발자
2018-07-29
3931
41603테이블 설계 모델링 관련 질문입니다.(유니크, PK 관련) [2]
조동건
2018-07-28
3969
41601날짜 yyyymmdd 문의 [1]
남제
2018-07-26
4136
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.052초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다