ROW_NUMBER (한국어)
구문
그림 row_number.gif
참조 :
구문, 의미 및 제한에 대한 정보는 “분석 함수”
목적
ROW_NUMBER
는 분석 함수입니다. order_by_clause
에 지정된 순서가 지정된 행 순서로 적용되는 각 행 (파티션의 각 행 또는 쿼리에서 반환 된 각 행)에 고유 번호를 할당합니다. , 1로 시작합니다.
ROW_NUMBER
를 사용하여 하위 쿼리를 중첩하여 ROW_NUMBER
값을 검색합니다. 범위를 지정하면 내부 쿼리 결과에서 정확한 행 하위 집합을 찾을 수 있습니다. 이 함수를 사용하면 상위 N 개, 하위 N 개 및 내부 N보고를 구현할 수 있습니다. 일관된 결과를 얻으려면 쿼리가 결정적 정렬 순서를 보장해야합니다.
ROW_NUMBER
또는 expr
. 즉, 분석 함수를 중첩 할 수 없지만 expr
에 대해 다른 내장 함수 표현식을 사용할 수 있습니다. expr
의 유효한 형식에 대한 정보는 “SQL 표현식 정보”를 참조하십시오.
예
샘플 테이블의 각 부서에 대한 oe.employees
, 다음 예에서는 직원의 고용 날짜 순서대로 각 행에 번호를 할당합니다.
ROW_NUMBER
는 비 결정적 함수. 그러나 employee_id
는 고유 키이므로이 함수 적용 결과는 결정적입니다.
참고 항목 :
비 결정적 동작의 예를위한 FIRST_VALUE 및 LAST_VALUE
다음 inner-N 쿼리는 employees
테이블에서 모든 행을 선택하지만 50 번째부터 1까지만 반환합니다. 100 번째 행 :
SELECT last_name FROM (SELECT last_name, ROW_NUMBER() OVER (ORDER BY last_name) R FROM employees) WHERE R BETWEEN 51 and 100;