IT

[오라클/함수] 분할함수 WIDTH_BUCKET

생각파워 2016. 11. 24. 17:22

Syntax

 

Description of width_bucket.gif follows

 

 

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 의 값이 리턴됩니다.

 

 

 

 

 

 

 

 

 

 

 

반응형