컬럼중에 seq를 다루는 부분을 모르겠습니다. 0 2 3,351

by 승환부인 LAG PARTITION BY [2011.10.07 16:56:44]


예를 들어 컬럼에 seq라는 컬럼이 있고 이게 3,4,5 이렇게 들어있으면.
지금 4번일 때 그 이전 seq를 가져오는 쿼리를 어떻게 짜야 할까요?

eqptid seq code
E1  10  0000
E1  11    0000
E1  12  0000
E1  13  0001
E2  14    0001
E3   15   0003
E3   16   0001
E1  17 0003


이런 식입니다.

만약 E1의 SEQ를 조회하는데 17의 이전 SEQ를 찾으려면 13이 되야 하는건데요...

이걸 어떻게 찾을 수 있나요?

오라클 내 함수가 있는건지...궁금합니다.~ 부탁드려요~

by 채용근 [2011.10.07 17:25:10]
lag 로 검색 해보세요

by 마농 [2011.10.10 09:29:35]
SELECT eqptid, seq, code
, LAG(seq) OVER(PARTITION BY eqptid ORDER BY seq) seq_pre
FROM t
;
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입