Background Image

FORUM

조회 수 26557 추천 수 0 댓글 11
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
테이블을 생성할 때 시리얼값을 저장하는 필드를 안 만들어서..(물론 unique 인덱스도 안 걸고..)
같은 내용의 데이터가 중복으로 들어갔는데..
중복된 데이터를 삭제하고 싶은데.. 오라클에 rowid 같은 필드가 큐브리드에서는 뭔지 모르겠네요
오라클에서는 이렇게 지우잖아요.
delete from tab1 a where rowid < (select max(rowid) from tab1 a, tab1 b where a.col1 = b.col1);
이렇게 하면 tab1 에서 col1 값이 같은 row 중에서 1건씩만 남고 삭제 되잖아요..

큐브리드에서는 어떻게 하면 되나요?
  • ?
    시난 2009.05.26 01:16
    네! 이럴 땐..
    rownum 을 사용하시면 됩니다.

    == FAQ http://www.cubrid.com/zbxe/32211 =============
    데이타가 중복 입력되어 1개만 남기고 필요없는 것은 지우고자 할때는 다음과 같이 하면 됩니다.

    1개만 남겨두기 위해서는 결과중 2번째부터 끝까지 지우면 된다. 따라서 결과에 대하여 일련번호를 붙일수 있는 rownum을 이용하면 된다.
    rownum 이라는 것은 결과 set 에 대하여 1번 부터 1씩 증가하여 부여되는 중복되지 않는 번호이기 때문이다.
    delete from ... where ... and rownum >= 2
    ==================
    참고하세요. emoticon
  • ?
    김경아 2009.05.26 01:26
    테이블에 데이터가 20만 건이 넘는데...
    where 절에 어떤 내용을 넣어야 되는 거죠?
  • ?
    시난 2009.05.26 02:02
    헉..  그렇다면 중복이 꽤나 많은가보네요..
    중복된 것이 적다면 중복된 시리얼값 조회 조건을 WHERE에 넣으셔서 하면 되는데..

    현재 원하시는 것이 완전히 중복된 것들을 중 일부는 제거하고 단 하나만 남기고 싶은 것인데..
    저도 찾아보고 있답니다. ;;;

    아랫분↓(?)이 금방 답변해주시길 거예요!!
  • ?
    시난 2009.05.26 02:54
    제가 찾은 바로는 현재 원하시는 기능은 딱히 없네요..

    다른 방법으로는 테이블을 동일하게 생성하신 다음, (이번엔 유니크 지정하시고)
    기존 중복적으로 들어간 테이블에서 select unique 컬럼명 FROM 테이블명 - 을 사용하여
    새로운 테이블에 넣고, 기존 테이블을 다른 이름으로 바꾸거나 지우고, 새로운 테이블을 기존 테이블명으로 수정하시면 됩니다.

    ex)
    1. create table tab2( 컬럼1, 컬럼2, ...) ;
    2. insert into tab2 ( ... ) select unique 컬럼1, 컬럼2, ... from tab1 ; --  여기서 중복이 제거가 되어 새로운 테이블에 들어갑니다.
    3. RENAME  tab1 as tab1_bk; -- 테이블명을 변경합니다.
    3. RENAME  tab2 as tab1;

     혹시 다른 방법있다면 알려주세요~!!

  • ?
    김경아 2009.05.26 04:09
    헉... 이런 거 원치 않아요.. ^^ 아시면서..
  • ?
    정만영 2009.05.26 04:39
    tab1 테이블의 name 컬럼에 두 개 이상의 같은 값이 있을 경우 아래와 같이 확인하고 삭제해 보세요.!!
    select col1 from tabl1 group by col1 having count(*) > 1;
    -> 1개 이상의 값을 출력되는지 확인
    delete from tabl1
    where col1 in (select col1 from tabl1 group by col1 having count(*) > 1)
    and rownum > 1
    -> 1개의 중복 값을 찾아 삭제

  • ?
    시난 2009.05.26 04:49
    rownum > 1을 통해 그렇게 할 수도 있군요!
    전 그렇게 하면.. in 안에 구문보다 select/delete 쪽에 먼저 결합될 줄 알았네요.. -.-;;;
    짐작만하고 실행해보지 않은게 아쉽네요..
     emoticon
  • ?
    김경아 2009.05.26 18:45
    delete문 where절에 rownum 을 써 본적이 없는데.. 이런 방법도 있군요..
    땡큐~
  • ?
    김경아 2009.05.26 19:02
    테스트 해 봤는데... 안 되네요.
    where 절의 col1의 모든 값 각각에 대해 rownum 이 먹는 게 아니라
    중복이 있는 col1 전체에서 1건만 제외하고 모든 col1이 삭제됩니다. 1건씩은 남겨야되는데.. 안되네요.
    중복이 있는 행이 10건 이라면, 5건만 삭제하고 5건은 남기고 싶은 건데..
    위의 쿼리대로 하면 9건이 삭제되요 ^^
  • ?
    cubebridge 2009.05.26 19:02
    위와 같은 방법으로 하실 경우 원하시는 결과를 가져올 수 없습니다.
    select로 우선 확인해 보시기 바랍니다.
    제가 이해하기로는 중복되는 데이터의 건수가 다량인 것으로 알고 있습니다. 위와 같이 수행할 경우 최상위 한건에 대해서만 한건을 남기고 정리될 것입니다.
  • ?
    Prototype 2009.05.26 20:20
    저희 제품을 사용해 주셔서 감사합니다.
    중복된 값을 골라서 삭제하는 방법은 다음과 같은 쿼리를 사용하면 가능합니다.

    delete from tab1 where rownum not in (select min(rownum) from tab1 group by col1)

    delete 쿼리문 not in 조건내의 서브쿼리를 적절히 조절하시면, 원하는 row만 남기고 중복된 데이터를 삭제 할 수 있을것입니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4275
216 nFORGE, DBMS - 큐브리드로 설치중입니다. 1 gorillia 2009.05.31 9814
215 데이터베이스 최적화 기능 관련 2 회오리 2009.05.30 10054
214 게시판의 이전글 다음글 구현 쿼리질문 2 김형일 2009.05.29 21594
213 sql 파일로 스키마 및 데이타 백업받으려면 어떻게 해야하나요? 3 이너맨 2009.05.29 15096
212 nFORGE, DBMS - 큐브리드로 설치중인데요 가이드대로 하는데 애로사항이 많네요 3 gorillia 2009.05.29 13194
211 flex + cubrid + LCDS 질문요!! 시난님 부탁해요! ㅋㅋ 3 USW 2009.05.28 23401
210 델파이 등 4GL 언어에서 사용할 수 있는 인터페이스는 없나요? 1 이상탁 2009.05.27 20384
209 버전업 될때마다 지우고.. 1 엔가 2009.05.27 10063
» 중복데이터 제거 방법 좀 알려주세요. 11 김경아 2009.05.26 26557
207 IP 정렬 질문 드립니다. 3 이석희 2009.05.23 13059
206 jsp오류 문의 6 USW 2009.05.22 15417
205 CUBRID 클라이언트만 설치 후 클라이언트 실행 에러 4 일류요리사 2009.05.22 16502
204 큐브리드 매니저 질의편집기가 이상하네요. 1 회색악마 2009.05.21 11615
203 ODBC 다중 접속 댓글을 보고 나서... 7 ApiClasser 2009.05.20 15886
202 CSQL을 통해서 데이터 입력 시 케릭터 셋 설정 1 거만쟁이 2009.05.20 13228
201 PDO 지원이 가능한가요? 1 ihwan 2009.05.20 12044
200 우분투 릴리즈 설치 지원 안되나요? 3 Hoya 2009.05.19 17730
199 쿼리 빌더 같은 것이 있나요? 1 jennysoft 2009.05.16 13084
198 [초보질문] dbcp test 중 오류발생 3 file 삽질중 2009.05.16 18401
197 [초보질문] 큐브리드 매니저에서 데이타베이스 종료시 에러 1 삽질중 2009.05.16 11936
Board Pagination Prev 1 ... 184 185 186 187 188 189 190 191 192 193 ... 199 Next
/ 199

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales