티스토리 뷰

반응형

통계작업을 위해 데이터를 샘플링하는 경우가 있습니다.

이때 Sybase IQ에서는 RAND() 함수를 사용하면 쉽게 샘플링 데이터를 얻을 수 있습니다.

ex) 2012년 1월 거래 데이터에서 5% 데이터를 샘플링하기

SELECT *

FROM 거래

WHERE 년월 = '201201'

    AND RAND(ROWID(거래)) < .05

;

정해진 건수 예를 들어 10만건 이렇게 구해야 한다면 먼저 적당한 %를 구한 다음에 TOP으로 가져오면 되겠죠.


PS) 오라클을 사용한다면 아래와 같이 하면 됩니다.

SELECT *

FROM 거래 SAMPLE(5)

WHERE 년월 = '201201'

;

또 다른 방법

SELECT *

FROM (SELECT *

           FROM 거래

           WHERE 년월 = '201201'

           ORDER BY  DBMS_RANDOM.VALUE

          )

WHERE ROWNUM < 10000

;





반응형