정렬문의드립니다. 0 2 1,379

by 리틀맹 [2013.12.26 15:34:48]


안녕하세요,, 오전에 도움받아서 해당 쿼리는 적용시켰는데,,
아래 order by 구문에 DESC 가 먹질 않네요,,,


WITH T AS (
    select fileid, reg_date, h_yn,
    COUNT(DECODE(H_YN,'1',1)) OVER(PARTITION BY TO_CHAR(REG_DATE,'YYYYMMDD')) HL_Y
    ,COUNT(DECODE(H_YN,'2',1)) OVER(PARTITION BY TO_CHAR(REG_DATE,'YYYYMMDD')) HL_N
    ,COUNT(FILEID) OVER() TOT_CNT
    FROM (
    select 'test01.jpg' fileid, '766366' id, TO_DATE('2013-09-25 12:16:50','yyyy-mm-dd hh24:mi:ss') reg_date, '2' h_yn from dual union all
    select 'test01.jpg' fileid, '766367' id, TO_DATE('2013-09-25 12:26:50','yyyy-mm-dd hh24:mi:ss') reg_date, '2' h_yn from dual union all
    select 'test01.jpg' fileid, '766368' id, TO_DATE('2013-09-25 12:36:50','yyyy-mm-dd hh24:mi:ss') reg_date, '1' h_yn from dual union all
    select 'test01.jpg' fileid, '766369' id, TO_DATE('2013-09-25 12:46:50','yyyy-mm-dd hh24:mi:ss') reg_date, '2' h_yn from dual union all
    select 'test01.jpg' fileid, '766375' id, TO_DATE('2013-09-25 12:56:50','yyyy-mm-dd hh24:mi:ss') reg_date, '1' h_yn from dual union all
    select 'test01.jpg' fileid, '766376' id, TO_DATE('2013-09-26 12:16:50','yyyy-mm-dd hh24:mi:ss') reg_date, '2' h_yn from dual union all
    select 'test01.jpg' fileid, '766377' id, TO_DATE('2013-09-27 12:16:50','yyyy-mm-dd hh24:mi:ss') reg_date, '2' h_yn from dual union all
    select 'test01.jpg' fileid, '766380' id, TO_DATE('2013-09-28 12:16:50','yyyy-mm-dd hh24:mi:ss') reg_date, '1' h_yn from dual union all
    select 'test01.jpg' fileid, '766381' id, TO_DATE('2013-09-28 12:26:50','yyyy-mm-dd hh24:mi:ss') reg_date, '2' h_yn from dual union all
    select 'test01.jpg' fileid, '766382' id, TO_DATE('2013-09-28 12:36:50','yyyy-mm-dd hh24:mi:ss') reg_date, '1' h_yn from dual union all
    select 'test01.jpg' fileid, '766386' id, TO_DATE('2013-09-28 12:46:50','yyyy-mm-dd hh24:mi:ss') reg_date, '2' h_yn from dual
    )    
)   
SELECT * FROM
(SELECT T.* ,
    ROW_NUMBER() OVER(PARTITION BY TO_CHAR(reg_date,'yyyymmdd') ORDER BY reg_date DESC) RN
 FROM T )
WHERE RN <= 3



위 쿼리를 돌려보면 결과가
test01.jpg 2013/09/25 오후 12:56:50 1 2 3 11 1
test01.jpg 2013/09/25 오후 12:46:50 2 2 3 11 2
test01.jpg 2013/09/25 오후 12:36:50 1 2 3 11 3
test01.jpg 2013/09/26 오후 12:16:50 2 0 1 11 1
test01.jpg 2013/09/27 오후 12:16:50 2 0 1 11 1
test01.jpg 2013/09/28 오후 12:46:50 2 2 2 11 1
test01.jpg 2013/09/28 오후 12:36:50 1 2 2 11 2
test01.jpg 2013/09/28 오후 12:26:50 2 2 2 11 3

요런식으로 나오는데 날짜를 DESC 로 정렬하고 싶거든요 최신순으로..
근데 노란색으로 칠한 부분이 적용이 안되는지 계속 등록순으로 나와서 난감하네요,,,

다시 한번 가르침 좀 부탁드립니다. 감사합니다.
by 우리집아찌 [2013.12.26 15:45:50]

SELECT * FROM
(SELECT T.* ,
    ROW_NUMBER() OVER(PARTITION BY TO_CHAR(reg_date,'yyyymmdd') ORDER BY reg_date DESC) RN
 FROM T )
WHERE RN <= 3
ORDER BY REG_DATE DESC <-- 이거요?

by 리틀맹 [2013.12.26 15:47:28]
네 ㅠㅠ 안그래도 지금 혹시나 해서 넣어봤더니 되네요,,, 오늘 내내 도움주셔서 감사합니다 ^^
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입