Syntax
expr : 분할할 데이터. 컬럼명이나 수식 등
min_value : expr 값 중 분할 할 가장 작은 값
max_value : expr 값 중 분할 할 가장 큰값
num_buckets : 분할 할 개수
Purpose
WIDTH_BUCKET 함수는 주어진 인자값이 전체 데이터 사이에서 어느 부분에 위치하고 있는지 그 값을 리턴하는 함수입니다. 즉 전체 데이터 값을 버킷에 나눈다고 생각하시면 됩니다.
Examples
아래와 같은 데이터가 있습니다.
위 데이터를 가지고 아래 SELECT문으로 처리를 하면 아래와 같은 결과가 나옵니다.
이렇게 값이 나오는 이유는 버킷을 값으로 나눠서 구분하기 때문입니다.
참고로 위 예에서 최대값을 101로 적은 이유는 최대값은 버킷 범위에 포함되지 않기 때문에 100을 버킷범위에 포함시키기 위해서 입니다.
WIDTH_BUCKET(AGE, 1, 101, 4)
를하면 범위는 1~100까지가 되고, 이를 4개의 버켓으로 나누면 범위는 아래와 같이 됩니다.
1번 버킷 범위 : 1~25
2번 버킷 범위 : 26~50
3번 버킷 범위 : 51~75
4번 버킷 범위 : 76~100
그래서 AGE 값이 1인것은 1번 버킷에, 30은 2번버킷, 52는 3번버킷, 77은 4번 버킷으로 분류됩니다.
데이터 중에 범위를 벗어난 데이터들은 버킷번호를 가지지 못하고, 최소값보다 작은 데이터는 0을, 최대값보다 같거나 큰 데이터는 num_buckets + 1 의 값이 리턴됩니다.
'IT' 카테고리의 다른 글
[오라클/함수] 오라클 문자열 합치기 CONCAT 함수 (0) | 2016.11.28 |
---|---|
[오라클/함수] 오라클 문자 만들기 CHR 함수 (0) | 2016.11.28 |
[오라클/함수] 오라클 버림함수 TRUNC (0) | 2016.11.24 |
[오라클/함수] 양수,0, 음수인지 판단하는 SIGN 함수 (0) | 2016.11.24 |
[오라클/함수] 반올림 함수 ROUND (1) | 2016.11.23 |