[Oracle] Random Sampling(랜덤샘플링)

Database 2012.03.13 13:07 Posted by 애플자라

1) sample(n)을 활용한 예
- 해당 테이블에서 n%의 데이터를 무작위로 추출

SELECT *
FROM MAILQUEUE sample(10) -- 10% 데이터 추출
WHERE 추출조건

2) dbms_random.value
- 무작위로 테이블을 정렬하는 기능
추출 조건에 맞는 데이터를 무작위로 정렬해서 상위 몇 개의 행만 끄집어 내는 방식

SELECT *
FROM MAILQUEUE sample(10) -- 10% 데이터 추출
WHERE 추출조건
AND ROWNUM < 6
ORDER BY dbms_random.value

* 속도면이나 쿼리의 간결한 측면에서는 2번보다는 1번을 추천

참조 - http://blog.naver.com/agney?Redirect=Log&logNo=60131459595