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 31509 게시물 읽기
No. 31509
한 테이블에 Null로 되어 있는 컬럼을 시퀀스 주는법?
작성자
전동호
작성일
2007-07-31 15:01ⓒ
2007-07-31 15:21ⓜ
조회수
1,304

현재 A테이블에 B컬럼 C컬럼이 있습니다.

B     C
AA
AA
BB
CC
DD

B라는 컬럼에는 중복된 데이터가 들어가 있구요, C값은 NULL로 들어가 있습니다.
현재 C라는 컬럼에 B(그룹)컬럼에 따른 시퀀스를 줄려고 합니다. 즉,

B     C
AA   1
AA   2
BB   1
CC   1
DD   1

이렇게 넣을려고 합니다.

SELECT 구문은 밑에와 같이 해결을 해서 C컬럼의 데이터를 얻어왔는데
 select B,row_number() over
          (partition by Border by null) as C
 from  A;


SELECT 구문도 저렇게 써서 INSERT 구문으로 C 컬럼에 데이터를 INSERT 구문을 쓰면 되는지
아니면 다른 방법으로 넣어야 하는지 잘 모르겠습니다.

가르쳐주시면 감사하겠습니다. ^^

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

A테이블의 PK 및 인덱스, 데이타 건수가 얼마나 되는지여?!

빈껍데기님이 2007-07-31 15:41에 작성한 댓글입니다. Edit

A테이블의 PK는 없습니다.(임시테이블이라서 따로 지정을 안해둔거 같습니다.)
인덱스 또한 설정되어 있지 않구요....
데이터 건수는 1000건 이하로 적은 데이터 양 입니다.

참고로B컬럼은 NOT NULL입니다.

전동호님이 2007-07-31 15:56에 작성한 댓글입니다. Edit
UPDATE a
   SET c = (SELECT b.rn
              FROM (SELECT ROWID rid
                         , ROW_NUMBER() OVER(PARTITION BY b ORDER BY 1) rn
                      FROM a
                    ) b
             WHERE b.rid = a.ROWID
            )
마농(manon94)님이 2007-07-31 16:10에 작성한 댓글입니다.

장작 3시간 동안 해매면서 도저히 기미가 안 보였었는데......ㅠㅠ

해결이 잘 되었습니다^^


감사합니다.

전동호님이 2007-07-31 16:17에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
31514실행이 안되요... [1]
ㅁㅁㅁ
2007-07-31
982
31511시간계산법 [1]
궁금이
2007-07-31
2560
31510추가하는 컬럼의 순서를 정해주는 방법이 있나요? [1]
초보
2007-07-31
1297
31509한 테이블에 Null로 되어 있는 컬럼을 시퀀스 주는법? [4]
전동호
2007-07-31
1304
31507프로시저에서 결과 행의 수를 어떻게 반환받나요? [3]
강민구
2007-07-31
1578
31506char 과 varchar2 의 조인이 안되는데... [4]
엔키
2007-07-31
1439
31505NUMBER(5) 면 5자리 인가요?
웁스
2007-07-31
908
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다