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 38680 게시물 읽기
No. 38680
쿼리질문 있읍니다.
작성자
쿼리질문
작성일
2011-07-11 10:32ⓒ
2011-07-11 14:27ⓜ
조회수
3,623

안녕하세요 쿼리 질문이 있어서 이렇게 글올립니다.

처음부터 합계를 구하면서 값이 2가되는 로우의 A컬럼 값을 구하고 싶습니다

이런게 가능할런지 모르겟네요..

현재 오라클 9i입니다.

예를 들어

A           B

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

1           1

2           0

3           1

4           1

5           0

6           1

7            1

 

아래와 같이 구하고 싶습니다.

B컬럼의 값이 순서대로 누적되면서 2가 되는 값의 A컬럼 값을 구하고자 하는건데요..

딱히 생각나는 구문이 없네요..

A     B      A의값

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

1     1       3  -> 현재부터  B값을 누적하여 2가되는 A컬럼의 값

2     0       4  ->  현재부터 B값을 누적하여 2가되는 A컬럼의 값

3     1       4  ->  현재부터 B값을 누적하여 2가되는 A컬럼의 값

4     1      6   ->  현재부터 B값을 누적하여 2가되는 A컬럼의 값

5     0       7  ->  현재부터 B값을 누적하여 2가되는 A컬럼의 값

6     1       7  ->  현재부터 B값을 누적하여 2가되는 A컬럼의 값

7     1      null

답변 부탁드립니다.

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

WITH t AS
(
SELECT 1 a, 1 b FROM dual
UNION ALL SELECT 2, 0 FROM dual
UNION ALL SELECT 3, 1 FROM dual
UNION ALL SELECT 4, 1 FROM dual
UNION ALL SELECT 5, 0 FROM dual
UNION ALL SELECT 6, 1 FROM dual
UNION ALL SELECT 7, 1 FROM dual
)
SELECT a, b
     , LAST_VALUE(c IGNORE NULLS) OVER(ORDER BY a DESC) c
  FROM (SELECT a, b
             , DECODE(b, 1, LEAD(a) OVER(PARTITION BY b ORDER BY a)) c
          FROM t
        )
 ORDER BY a
;

마농(manon94)님이 2011-07-11 15:39에 작성한 댓글입니다.

9i 에선 ignore nulls 가 안되는 군요.


WITH t AS
(
SELECT 1 a, 1 b FROM dual
UNION ALL SELECT 2, 0 FROM dual
UNION ALL SELECT 3, 1 FROM dual
UNION ALL SELECT 4, 1 FROM dual
UNION ALL SELECT 5, 0 FROM dual
UNION ALL SELECT 6, 1 FROM dual
UNION ALL SELECT 7, 1 FROM dual
)
SELECT a, b, c
     , MAX(a)
       OVER(ORDER BY c
            RANGE BETWEEN '1' PRECEDING AND '1' PRECEDING) c
  FROM (SELECT a, b
             , SUM(b) OVER(ORDER BY a DESC) c
          FROM t
        )
 ORDER BY a
;

마농(manon94)님이 2011-07-11 16:00에 작성한 댓글입니다.

아 마농님 감사합니다..

그리고 늦엇지만 몇달전 세미나 넘 잘들었씁니다.^^;

저두 LEAD함수 사용하면 되지않을까 하는 고민은 해ㅅ봣지만.. 아직은 배워야할게 넘 많네요..

감사합니다.

쿼리질문님이 2011-07-11 16:20에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
38683오라클 10 SGA 조정방법에 관해서
질문
2011-07-11
3191
38682chmod 775로 하면 안되는게 정상인가요? [2]
임서희
2011-07-11
3419
38681STREAMS_POOL_SIZE? 의 역활은?
for2
2011-07-11
3006
38680쿼리질문 있읍니다. [3]
쿼리질문
2011-07-11
3623
38679고수님들 업데이트 쿼리 부탁드립니다. [1]
jinkuidong
2011-07-10
3494
386789와 11에서 구문 에러 차이 발생 [1]
gugizi
2011-07-10
3490
38675오라클 접속지연
초보DB
2011-07-08
4370
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다