기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
RANDOM 함수
RANDOM 함수는 0.0(포함)과 1.0(제외) 사이에서 무작위로 값을 생성합니다.
명령문
RANDOM()
반환 타입
RANDOM은 DOUBLE PRECISION 숫자를 반환합니다.
예
-
0과 99 사이에서 무작위로 값을 계산합니다. 무작위 숫자가 0~1이라면 다음 쿼리는 0과 100 사이에서 무작위 숫자를 생성합니다.
select cast (random() * 100 as int); INTEGER ------ 24 (1 row)
-
10개 항목의 균일한 무작위 샘플을 검색합니다.
select * from sales order by random() limit 10;
이제 10개 항목의 무작위 샘플을 검색하지만, 가격에 비례하여 항목을 선택합니다. 예를 들어 다른 항목보다 가격이 두 배 높은 항목은 쿼리 결과에 나타날 가능성이 두 배 더 높습니다.
select * from sales order by log(1 - random()) / pricepaid limit 10;
-
다음은 RANDOM이 예측 가능한 순서로 숫자를 생성할 수 있도록 SET 명령을 사용하여 SEED 값을 설정하는 예입니다.
먼저 SEED 값을 설정하지 않고 RANDOM 정수 3개를 반환합니다.
select cast (random() * 100 as int); INTEGER ------ 6 (1 row) select cast (random() * 100 as int); INTEGER ------ 68 (1 row) select cast (random() * 100 as int); INTEGER ------ 56 (1 row)
그런 다음 SEED 값을
.25
로 설정한 후 RANDOM 숫자를 3개 더 반환합니다.set seed to .25; select cast (random() * 100 as int); INTEGER ------ 21 (1 row) select cast (random() * 100 as int); INTEGER ------ 79 (1 row) select cast (random() * 100 as int); INTEGER ------ 12 (1 row)
마지막으로 SEED 값을 다시
.25
로 설정한 후 RANDOM이 이전 세 번의 호출과 동일한 결과를 반환하는지 확인합니다.set seed to .25; select cast (random() * 100 as int); INTEGER ------ 21 (1 row) select cast (random() * 100 as int); INTEGER ------ 79 (1 row) select cast (random() * 100 as int); INTEGER ------ 12 (1 row)