Database/Oracle
[오라클] 랜덤 샘플링 방법 두번째
데브포유
2016. 11. 14. 14:20
반응형
예전에 소개해 드린 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 버킷에 해당하는 거래만 랜덤으로 가져올 수 있습니다.
반응형