select한 컬럼중에서 컬럼간의 date 차이값을 표현하고 싶습니다. 0 2 1,296

by phil [SQL Query] [2011.01.05 00:01:38]



insert into customerinfo values(to_date('101101' , 'yymmdd') , '5' , 30000)
insert into customerinfo values(to_date('101102' , 'yymmdd') , '5' , 30000)
insert into customerinfo values(to_date('101105' , 'yymmdd') , '5' , 50000)
insert into customerinfo values(to_date('101115' , 'yymmdd') , '7' , 30000)

select min(days) , rate , acnt from customerinfo
group by rate , acnt

MIN(DAYS RATE ACNT
----------------- ---------- ----------
10/11/01   5    30000
10/11/05   5    50000
10/11/15   7    30000

위와 같이 데이터를 넣고 쿼리를 수행한 결과에서요.

첫번째 행의 날짜 10/11/01과 두번째 행 10/11/05 날짜의 날짜 차이를 acnt 컬럼 옆에다 출력하고
싶습니다.

MIN(DAYS RATE ACNT DATEDIFF
----------------- ---------- ----------
10/11/01   5    30000    1
10/11/05   5    50000    4
10/11/15   7    30000   10

이렇게 표현할려면 어떻게 해야 할까요?? 집계함수를 사용하지 않고 출력하는 방법을 알고 싶은데요.

고수분들의 조언을 부탁드릴게요.^^

by 마농 [2011.01.05 08:21:56]
SELECT MIN(days) days
, rate, acnt
, NVL(MIN(days) - LAG(MIN(days)) OVER(ORDER BY MIN(days)), 1) datediff
FROM customerinfo
GROUP BY rate, acnt
;

by phil [2011.01.06 00:41:08]
마농님. 알려 주셔서 정말로 감사합니다. 쿼리 분석 후 모르는 부분은
다시 질문 드리겠습니다. 정말 감사합니다.~~
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입