조건에 따라 상위 값을 구하는 방법이 있을까요? 0 2 899

by 한결 [2014.03.06 15:53:41]


WITH T AS (
     SELECT 'A' GBN, 1 RN FROM DUAL UNION ALL
     SELECT '', 2 FROM DUAL UNION ALL
     SELECT '', 3 FROM DUAL UNION ALL 
     SELECT 'B', 4 FROM DUAL UNION ALL
     SELECT '', 5 FROM DUAL UNION ALL
     SELECT 'C', 6 FROM DUAL UNION ALL
     SELECT '', 7 FROM DUAL UNION ALL
     SELECT '', 8 FROM DUAL UNION ALL
     SELECT '', 9 FROM DUAL UNION ALL
     SELECT '', 10 FROM DUAL UNION ALL
     SELECT '', 11 FROM DUAL UNION ALL
     SELECT '', 12 FROM DUAL UNION ALL
     SELECT '', 13 FROM DUAL
)

원하는 결과값
GBN, GRP_GBN, RN
A    A    1
    A    2
    A    3
B    B    4
    B    5
C    C    6
    C    7
    C    8
    C    9
    C    10
    C    11
    C    12
    C    13

이렇게 구하고자 합니다.



by 마농 [2014.03.06 16:40:11]
SELECT gbn
     , LAST_VALUE(gbn IGNORE NULLS) OVER(ORDER BY rn) grp_gbn
     , rn
  FROM t
;
-- http://www.gurubee.net/article/47427

by 한결 [2014.03.06 16:44:02]
//마농
감사합니다.. FIRST_VALUE로만 테스트 해보고 안되는구나 했는데,, 이렇게 되는군요,,
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입