WHERE RAND() < 0.001
WHERE RAND() < 0.001
은 SQL에서 **표본 추출 (sampling)**을 할 때 자주 사용하는 패턴입니다. 이 조건의 의미는 다음과 같습니다:
✅ 의미
WHERE RAND() < 0.001
RAND()
는 0과 1 사이의 난수를 반환합니다.RAND() < 0.001
은 약 0.1% 확률로 TRUE가 됩니다.- 따라서 이 조건을 만족하는 약 0.1%의 행(row) 만 필터링되어 결과에 포함됩니다.
✅ 용도
- 테스트용 샘플 데이터 추출
- 대용량 테이블에서 분석하거나 디버깅할 때 전체 데이터를 쓰지 않고 일부만 뽑기 위함
- 랜덤 서브셋 생성
- 데이터 균형 확인, 속도 향상 등
✅ 예제
SELECT *
FROM big_table
WHERE RAND() < 0.001;
→ big_table
에서 무작위로 약 0.1% 행을 추출합니다.
🔄 확률 조정 예시
0.01
→ 약 1% 샘플0.1
→ 약 10% 샘플0.0001
→ 약 0.01% 샘플
필요하다면 BigQuery 등에서 TABLESAMPLE SYSTEM
문법으로 더 정교한 샘플링도 가능합니다.
무작위 추출된 행이 매번 달라져도 괜찮은 상황인가요, 아니면 고정된 샘플이 필요하신가요?