본문 바로가기
개발/데이타베이스

[ORACLE] RANK OVER() / ROW_NUMBER() OVER()

by 로그인시러 2017. 2. 6.


-- 분석 함수

    -- RANK OVER()

    -- ROW_NUMBER() OVER() ** 중요  제일 많은 씀 **

      -- 순위를 구함. 

      -- RANK() OVER()는 동일 순위인 경우 1,1,3, 형식으로 출력하지만

      -- ROW_NUMBER() OVER()는 동일 순위인 경우 1,2,3, 형식으로 출력

      -- DENSE_RANK() OVER()는 동일 순위인 경우 1,1,2 형식으로 출력

      -- ROW_NUMBER() OVER()는 매우매우매우 중요한 함수이므로 반드시 알아 둘것 !!!!!!!!!!!!!!!!!!!




  -- ***** 나중에 게시판 작성 할 때 사용하는 쿼리 형식이므로 반드 암기 해야함. *****

    -- ROW_NUMBER()를 이용한 쿼리가 아래 ROWNUM을 사용한 쿼리보다 우수

      SELECT num,name,basicpay FROM(

        SELECT num, name, basicpay, ROW_NUMBER() OVER(ORDER BY num DESC) rnum FROM insa

        ) WHERE rnum>= 10 AND rnum <=15 ORDER BY num DESC;

        

     SELECT num,name,basicpay FROM(

      SELECT ROWNUM rnum, num, name, basicpay FROM(

        SELECT num, name, basicpay FROM insa ORDER BY num DESC

      )

    )WHERE rnum>=10 AND rnum<=15;



출처: http://tibang.tistory.com/entry/오라클-분석-함수-RANK-OVER-ROWNUMBER-OVER [T없이맑은날]



댓글