본문 바로가기
오라클 게시판/오라클 함수

[오라클 SQL 함수] ORA_HASH 함수

by 기서무나구물 2021. 10. 19.

포스팅 목차

     

    ORA_HASH

     


    문법

     

    ora_hash::=

     


    목적

    ORA_HASH함수는 주어진 표현에 대한 해쉬 값을 계산하는 함수이다.

    이 함수는 데이터의 부분 집합 분석이나, 랜덤 샘플 생성과 같은 조작에 유용하다.

    • 인수 expr은 오라클 데이터 베이스로 해쉬 값을 계산하기 원하는 데이터를 정의한다. 일반적 열의 이름을 가지는 expr로 지정하기 위한 데이터의 형태나 길이의 제한은 없다.
    • 옵션의 max_bucket 인수는 해쉬 함수에 의해 반환되는 최대의 bucket값을 정의한다. 0과 4294967295 사이의 값을 지정할 수 있다. 기본값은 4294967295이다.
    • 옵션 seed_value인수는 데이터의 같은 세트에 대하여 여러 다른 결과를 산출하도록 한다. 오라클은 해쉬 함수를 expr과 seed_value의 조합에 적용한다. 0과 4294967295 사이의 값을 지정할 수 있다. 기본값은 4294967295이다.

    함수는 NUMBER값을 반환한다.

     


    예제

    다음 예제는 sh.sales 테이블에서 고객 ID와 제품 ID의 각 조합에 대한 해쉬값을 생성하여, 해쉬값을 최대 100개 bucket에 분할하고, 첫 번째 bucket(bucket 0)에 amount_sold값의 합계를 반환한다. 세 번째 인수 (5)는 해쉬 함수에 대한 seed값을 지정한다. 이 seed값을 변화함에 따라 같은 쿼리에 대하여 다른 해쉬 결과를 획득할 수 있다..

    Oracle Program
    SELECT SUM(amount_sold) 
    FROM   sales
    WHERE  ORA_HASH(CONCAT(cust_id, prod_id), 99, 5) = 0;

     

    Results
    SUM(AMOUNT_SOLD)
    ----------------
                7315

     


    다음 예제는 10개의 buckets(0에서 9) 지정에 의해 sh.sales 테이블에서 데이터의 subset을 검색하여서, bucket 1로부터 데이터를 반환한다. 기대되는 subset은 행의 약 10%이다. (sales 테이블은 960 행).

    Oracle Program
    SELECT * 
    FROM   sales
    WHERE  ORA_HASH(cust_id, 9) = 1;

     

    Results
       PROD_ID    CUST_ID TIME_ID   C   PROMO_ID QUANTITY_SOLD AMOUNT_SOLD
    ---------- ---------- --------- - ---------- ------------- -----------
          2510       6950 01-FEB-98 S       9999             2          78
          9845       9700 04-FEB-98 C       9999            17         561
          3445      33530 07-FEB-98 T       9999             2         170
    . . .
           740      22200 13-NOV-00 S       9999             4         156
          9425       4750 29-NOV-00 I       9999            11         979
          1675      46750 29-NOV-00 S       9999            19        1121
    97 rows selected.

     


    오라클 SQL 함수(Oracle SQL Function) 목록 리스트 링크

     

    [SQL, Pandas, R Prog, Dplyr, SQLDF, PANDASQL, DATA.TABLE] SQL EMP 예제로 만나는 테이블 데이터 처리 방법 리스트 링크
    반응형

    댓글