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 41164 게시물 읽기
No. 41164
중복 값 제거
작성자
최상민(roice81)
작성일
2016-05-27 16:50
조회수
7,828

SEQ1 SEQ2 결과값

0 0 OK

1 2 OK

2 3 OK

3 4 OK

4 5 OK

5 6 OK

6 7 OK

7 8 OK

7 40 DEL

8 8 OK

8 40 DEL

9 9 OK

9 41 DEL

10 9 OK

10 41 DEL

11 10 OK

12 11 OK

13 12 OK

14 14 OK

15 16 OK

35 38 OK

36 39 OK

37 8 DEL

37 40 OK

38 8 DEL

38 40 OK

39 9 DEL

39 41 OK

40 9 DEL

40 41 OK

41 42 OK

42 43 OK

 

 

 

 

1. SEQ1 열이 순차적으로 나열되어집니다.

2. SEQ1 열의 중간에 중복 숫자가 나열될 경우 (중복의 경우 예시는 2개지만 N개가 될수 있습니다.)

3. 결과값은 seq2 값중 이전값과 가장 가까운 한개의 항목만 OK 나머지는 DEL로 판정하고 싶습니다.

 

도움 부탁드립니다

 

감사합니다.

 

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

한방 쿼리로는 어려울 듯 하네요.
절차적으로 풀어야 할 듯 합니다.
PL/SQL 로 출력해 봤습니다.


DECLARE
    CURSOR c0 IS
    SELECT DISTINCT seq1 FROM test ORDER BY seq1;
    v_seq2 NUMBER := 0;
    v_flag VARCHAR2(3);
BEGIN
    FOR c1 IN c0
    LOOP
        FOR c2 IN (SELECT seq1, seq2
                        , ROW_NUMBER()
                          OVER(ORDER BY ABS(seq2 - v_seq2), seq2) rn
                     FROM test
                    WHERE seq1 = c1.seq1
                    ORDER BY seq2
                   )
        LOOP
            IF c2.rn = 1 THEN
                v_seq2 := c2.seq2;
                v_flag := 'OK';
            ELSE
                v_flag := 'DEL';
            END IF;
            dbms_output.put_line( LPAD(c2.seq1, 5, ' ')
                               || LPAD(c2.seq2, 5, ' ')
                               || '  ' || v_flag
                                );
        END LOOP;
    END LOOP;
END;
/

마농(manon94)님이 2016-05-30 16:58에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
41169UDF 함수로 외부 C 라이브러리 호출 하는 것에 대해서..
초보DBA
2016-06-02
8098
41167dbms_crypto.hash(to_clob( + quatation 따옴표 사용 문의 [3]
박재덕
2016-06-01
7683
41166connect by 구문 질문 [2]
ASKO912
2016-05-31
7651
41164중복 값 제거 [1]
최상민
2016-05-27
7828
41163초를 시분초로 변환 하는 법 [1]
초보
2016-05-24
8590
41162마지막 번호 앞번호 추출 [1]
핸디핸디
2016-05-22
8118
41161웹에서 프로시져 호출시 에러 부탁드립니다.
복이사랑
2016-05-20
7731
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.057초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다