카테고리:

데이터 생성 함수

UNIFORM

포함 범위 [min, max]에서 균일하게 분포된 의사 난수를 생성합니다.

구문

UNIFORM( <min> , <max> , <gen> )
Copy

인자

min

생성된 숫자의 최소값(포함)을 지정하는 상수입니다.

max

생성된 숫자의 최대값(포함)을 지정하는 상수입니다.

gen

균일한 난수의 원시 원본 역할을 하는 식으로, 일반적으로 RANDOM 함수입니다. 자세한 내용은 데이터 생성 함수 사용법 노트 를 참조하십시오.

반환

min 또는 max 중 하나 또는 둘 다 부동 소수점 숫자인 경우 UNIFORM 은 부동 소수점 숫자를 반환합니다. minmax 가 모두 정수인 경우 UNIFORM 은 정수를 반환합니다.

사용법 노트

이 함수는 RANDOM 함수와 관련이 있지만 다릅니다. 두 함수는 모두 균일한 분포를 생성하지만, 반환되는 값의 범위에는 차이가 있습니다.

  • RANDOM 은 의사 난수 64비트 정수를 생성합니다. 이 함수는 시퀀스를 반복할 수 있는 선택적 시드를 허용합니다.

  • UNIFORM 은 지정된 범위에서 임의의 정수 또는 부동 소수점 숫자를 생성합니다.

다음 예는 UNIFORM 함수 사용 방법을 보여줍니다. 아래 출력에 표시된 값은 이러한 예를 직접 실행할 때 반환된 값과 다를 수 있습니다.

이 예제는 1에서 10(포함) 범위의 임의의 정수 5개를 생성합니다.

SELECT UNIFORM(1, 10, RANDOM()) FROM TABLE(GENERATOR(ROWCOUNT => 5));
Copy
+--------------------------+
| UNIFORM(1, 10, RANDOM()) |
|--------------------------|
|                        6 |
|                        1 |
|                        8 |
|                        5 |
|                        6 |
+--------------------------+

이 예에서는 0~1(포함) 범위의 부동 소수점 숫자 5개를 생성합니다.

SELECT UNIFORM(0::FLOAT, 1::FLOAT, RANDOM()) FROM TABLE(GENERATOR(ROWCOUNT => 5));
Copy
+---------------------------------------+
| UNIFORM(0::FLOAT, 1::FLOAT, RANDOM()) |
|---------------------------------------|
|                         0.1180758313  |
|                         0.4945805484  |
|                         0.7113092833  |
|                         0.06170806767 |
|                         0.01635235156 |
+---------------------------------------+

이 예에서는 gen 인자가 상수이면 출력이 상수임을 보여줍니다.

SELECT UNIFORM(1, 10, 1234) FROM TABLE(GENERATOR(ROWCOUNT => 5));
Copy
+----------------------+
| UNIFORM(1, 10, 1234) |
|----------------------|
|                    7 |
|                    7 |
|                    7 |
|                    7 |
|                    7 |
+----------------------+