퀴즈요~ 0 1 4,020

by 박종정 [2008.06.02 16:42:10]


1.jpg (34,309Bytes)
2.JPG (45,062Bytes)

 아래와 같은 테이블이 존재할때... (아래 생성해 주세요~ ^^*)

CREATE TABLE TEST_LIST
AS
SELECT LEVEL COL1,
       ’데이타_’||TO_CHAR(LEVEL,’0009’) COL2,
       TO_DATE(’20080601’,’YYYYMMDD’)-MOD(LEVEL-1,10) COL3
FROM DUAL
CONNECT BY LEVEL <= 1000;


CREATE INDEX IDX_TEST_LIST_01 ON TEST_LIST (COL3);

 

그림과 같이 20080601부터 최근 M일까지  N개씩의 데이타만 가져와서 뿌려주세요.

(단 날짜는 연속된 날짜만 들어있음.)

첫번째는 20080601 부터 최근 3일까지의 5로우씩~

두번째는 20080601 부터 최근 10일까지의 2로우씩~

 하루에 게시물이 상당 수 등록된다는 가정하에 해주시기 바랍니다~

 

by xo [2008.06.02 21:26:28]
SELECT COL1,COL2,COL3
FROM (
SELECT --+ INDEX_DESC (TEST_LIST IDX_TEST_LIST_01)
ROW_NUMBER() OVER (PARTITION BY COL3 ORDER BY COL1 DESC) RN,
COL1,COL2,COL3
FROM
TEST_LIST
WHERE
COL3 >= TO_DATE('20080601') - 2
)
WHERE RN <= 5
ORDER BY COL3 DESC
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입