이런것도 쿼리로 가능할까요? 0 2 901

by 낭만오리 [SQL Query] [2014.11.07 18:11:50]


아래와 같이 순위로 정렬된 상태에서 그룹이 1일경우만 순위그룹값을 알 수 있는데

원하는 값 처럼 순위그룹값이 null인경우 이전 순위그룹값을 가져올 수 있나요?

 

그룹  | 순위 | 순위그룹     |   원하는 값
--------------------------------------
1    |  1   |  a          |     a
2    |  2   |  null       |     a
1    |  3   |  b          |     b
1    |  4   |  c          |     c
1    |  5   |  d          |     d
2    |  6   |  null       |     d
3    |  7   |  null       |     d
1    |  8   |  e          |     e
2    |  9   |  null       |     e
3    | 10   |  null       |     e
4    | 11   |  null       |     e

by 마농 [2014.11.07 19:31:01]
WITH t AS
(
SELECT 1 grp, 1 seq, 'a' val FROM dual
UNION ALL SELECT 2,  2, null FROM dual
UNION ALL SELECT 1,  3, 'b'  FROM dual
UNION ALL SELECT 1,  4, 'c'  FROM dual
UNION ALL SELECT 1,  5, 'd'  FROM dual
UNION ALL SELECT 2,  6, null FROM dual
UNION ALL SELECT 3,  7, null FROM dual
UNION ALL SELECT 1,  8, 'e'  FROM dual
UNION ALL SELECT 2,  9, null FROM dual
UNION ALL SELECT 3, 10, null FROM dual
UNION ALL SELECT 4, 11, null FROM dual
)
SELECT grp, seq, val
     , LAST_VALUE(val IGNORE NULLS) OVER(ORDER BY seq) v_10g
     , LAST_VALUE(val) IGNORE NULLS OVER(ORDER BY seq) v_11g
  FROM t
;

 


by 낭만오리 [2014.11.09 17:02:08]

정말감사합니다. ^^

이거 몰라서 java로 열쒸미 돌렸는데 이제부턴 쿼리로 한빵에 할 수 있겠습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입