분석 함수

    ① ROW_NUMBER( )

    ROW_NUMBER는 ROWNUM 의사 컬럼과 비슷한 기능을 하는데, 파티션으로 분할된 그룹별로 각 로우에 대한 순번을 반환하는 함수다. 사원 테이블에서 부서별 사원들의 로우 수를 출력해 보자.

    입력

        SELECT department_id, emp_name,
               ROW_NUMBER() OVER (PARTITION BY department_id
                                  ORDER BY emp_name ) dep_rows
          FROM employees;
    
    그림 7-16 ROW_NUMBER 함수

    부서별 사원 리스트가 조회됐는데, dep_rows 컬럼에서 부서별로 순번이 조회되었다. 10번 부서에 속한 사원은 한 명이므로 순번은 1이지만 30번 부서는 1에서 4까지 순번이 매겨졌다. PARTITION BY 절에 부서번호를 명시해 부서별 파티션이 내부적으로 만들어졌고, 다시 이 파티션에서 사원명으로 정렬된 것이 보인다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.