본문 바로가기

[오라클 레퍼런스 함수] WIDTH_BUCKET - 데이터의 등너비(equiwidth) 히스토그램 생성

by ㅇㅍㅍ 2023. 9. 5.
[오라클 레퍼런스 함수] WIDTH_BUCKET - 데이터의 등너비(equiwidth) 히스토그램 생성
728x90

 

WIDTH_BUCKET

 

구문

WIDTH_BUCKET
   (expr, min_value, max_value, num_buckets)

 

목적

WIDTH_BUCKET 함수는 등너비 히스토그램(equiwidth histograms)을 생성하는 데 사용됩니다. 이 히스토그램은 히스토그램 범위를 동일한 크기의 구간으로 나누어 구성합니다. (이 함수는 등고도 히스토그램(equiheight histograms)을 생성하는 NTILE 함수와 비교됩니다.) 이상적으로 각 버킷은 실수 형태의 닫힌-열린 간격(closed-open interval)입니다. 예를 들어, 한 버킷은 10.00부터 19.999 사이의 점수에 할당될 수 있으며, 이는 10이 간격에 포함되고 20은 제외됨을 나타냅니다. 이것은 때로 [10, 20)으로 표시됩니다.

주어진 표현식에 대해 WIDTH_BUCKET은 이 표현식의 값을 평가한 후 떨어지게 될 버킷 번호를 반환합니다.

  • expr은 히스토그램이 생성되는 표현식입니다. 이 표현식은 숫자 또는 날짜 값으로 평가되거나 숫자 또는 날짜 값으로 암묵적으로 변환할 수 있는 값을 반환해야 합니다. expr이 null로 평가되면 이 표현식은 null을 반환합니다.
  • min_valuemax_value는 expr에 대한 허용 범위의 끝점을 해결하는 표현식입니다. 이러한 표현식은 또한 숫자 또는 날짜 값으로 평가되어야 하며 둘 다 null로 평가될 수 없습니다.
  • num_buckets은 상수를 해결하는 표현식으로, 버킷 수를 나타냅니다. 이 표현식은 양의 정수로 평가되어야 합니다.

    참고:
    암묵적 변환에 대한 자세한 내용은 표 2-8을 참조하십시오.

 

필요한 경우, Oracle Database는 번호 0의 하향식 버킷과 번호 num_buckets+1의 상향식 버킷을 생성합니다. 이러한 버킷은 min_value 미만 또는 max_value 초과의 값을 처리하며, 끝점의 합리성을 확인하는 데 도움이 됩니다.

예제

다음 예제는 샘플 테이블 oe.customers의 스위스 고객에 대한 credit_limit 열에 대한 열 개수가 10인 히스토그램을 생성하고 각 고객에 대한 버킷 번호("Credit Group")를 반환합니다. 최대 값보다 크거나 같은 신용 한도를 가진 고객은 오버플로 버킷, 즉 11에 할당됩니다:

SELECT customer_id, cust_last_name, credit_limit, 
   WIDTH_BUCKET(credit_limit, 100, 5000, 10) "Credit Group"
   FROM customers WHERE nls_territory = 'SWITZERLAND'
   ORDER BY "Credit Group", customer_id, cust_last_name, credit_limit;

CUSTOMER_ID CUST_LAST_NAME       CREDIT_LIMIT Credit Group
----------- -------------------- ------------ ------------
        825 Dreyfuss                      500            1
        826 Barkin                        500            1
        827 Siegel                        500            1
        853 Palin                         400            1
        843 Oates                         700            2
        844 Julius                        700            2
        835 Eastwood                     1200            3
        836 Berenger                     1200            3
        837 Stanton                      1200            3
        840 Elliott                      1400            3
        841 Boyer                        1400            3
        842 Stern                        1400            3
        848 Olmos                        1800            4
        849 Kaurusmdki                   1800            4
        828 Minnelli                     2300            5
        829 Hunter                       2300            5
        850 Finney                       2300            5
        851 Brown                        2300            5
        852 Tanner                       2300            5
        830 Dutt                         3500            7
        831 Bel Geddes                   3500            7
        832 Spacek                       3500            7
        833 Moranis                      3500            7
        834 Idle                         3500            7
        838 Nicholson                    3500            7
        839 Johnson                      3500            7
        845 Fawcett                      5000           11
        846 Brando                       5000           11
        847 Streep                       5000           11

 


출처: 오라클 레퍼런스

원문 링크: Oracle WIDTH_BUCKET 함수 문서

 

반응형

댓글