NTILE
구문
NTILE(expr) OVER ([ query_partition_clause ] order_by_clause)
참고:
expr의 유효한 형식을 포함한 구문, 의미, 그리고 제한 사항에 대한 정보는 "Analytic Functions"에 대한 내용을 참조하세요.
목적
NTILE은 분석 함수입니다. 순서가 지정된 데이터 집합을 expr로 지정된 버킷(buckets) 수로 나누어 각 행에 적절한 버킷 번호를 할당합니다. 버킷은 1부터 expr까지 번호가 매겨집니다. 각 파티션마다 expr 값은 양의 상수로 해결되어야 합니다. 오라클 데이터베이스는 정수를 예상하며, expr이 정수 상수가 아닌 경우에는 값이 정수로 절삭됩니다. 반환 값은 NUMBER입니다.
버킷 내의 행 수는 최대 1개 차이날 수 있습니다. 나머지 값(행 수를 버킷으로 나눈 나머지)은 버킷 1부터 시작하여 각 버킷에 하나씩 분배됩니다.
expr이 행 수보다 큰 경우 행 수와 동일한 수의 버킷이 채워지고, 나머지 버킷은 비어 있을 것입니다.
expr에 NTILE 또는 다른 분석 함수를 사용하여 분석 함수를 중첩할 수 없습니다. 그러나 expr에 다른 내장 함수 식을 사용할 수 있습니다.
참고:
expr의 유효한 형식에 대한 정보는 "About SQL Expressions"를 참조하고 암묵적 변환에 대한 자세한 내용은 표 2-8을 참조하십시오.
예시
다음 예제는 부서 100의 oe.employees 테이블의 salary 열 값을 4개의 버킷으로 분할합니다. 이 부서의 salary 열에는 6개의 값이 있으므로 2개의 추가 값(6 / 4의 나머지)은 버킷 1과 2에 할당되어, 이들 버킷은 버킷 3 또는 4보다 한 개의 값이 더 많습니다.
SELECT last_name, salary, NTILE(4) OVER (ORDER BY salary DESC) AS quartile
FROM employees
WHERE department_id = 100
ORDER BY last_name, salary, quartile;
LAST_NAME SALARY QUARTILE
------------------------- ---------- ----------
Chen 8200 2
Faviet 9000 1
Greenberg 12008 1
Popp 6900 4
Sciarra 7700 3
Urman 7800 2
출처: 오라클 레퍼런스
원문 링크: Oracle NTILE 함수 문서
'코딩 > 오라클 함수' 카테고리의 다른 글
[오라클 레퍼런스 함수] NUMTODSINTERVAL - 숫자를 INTERVAL로 변환 (예) n일, n시간, n분, n초 (0) | 2023.08.11 |
---|---|
[오라클 레퍼런스 함수] NULLIF - 두 값이 동일하면 null 반환 (0) | 2023.08.11 |
[오라클 레퍼런스 함수] NTH_VALUE - 윈도우(window) 내 n번째 값 반환 (0) | 2023.08.11 |
[오라클 레퍼런스 함수] NLSSORT - 정렬 키(collation key) 반환 (0) | 2023.08.10 |
[오라클 레퍼런스 함수] NLS_UPPER - 모든 문자를 대문자로 변환 (0) | 2023.08.10 |
댓글