티스토리 뷰

반응형

예전에 소개해 드린 SAMPLE() 키워드를 이용한 랜덤 샘플링 방법외에 ORA_HASH() 함수를 이용한

랜덤 샘플링 방법을 소개해 드립니다.


SELECT *

FROM 거래 SAMPLE(5)

WHERE 년월 = '201201'

;


-- 사용법

ORA_HASH( 값),

ORA_HASH(값, 버킷수);

ORA_HASH(값, 버킷수, SEED값);


위 3개의 ORA_HASH함수 사용법 중에서 세번째 방법을 활용하면 더 다양하게 랜덤 샘플링 결과를 얻을 수 있습니다.


SELECT *

FROM 거래

WHERE 년월 = '201201'

    AND ORA_HASH(주문번호, 50, 5) IN (24, 48)


==> 주문번호로 HASH함수를 만들고 50개의 버킷에 담습니다. 그리고 랜덤 초기화는 5라는 값으로 사용해서 ...


ORA_HASH에 버킷수만 사용하면 값이 항상 같기 때문이죠.


위의 결과로 50개의 버킷중 24,48 버킷에 해당하는 거래만 랜덤으로 가져올 수 있습니다.



반응형