NORMAL

NORMAL

지정된 mean(평균)과 stddev(표준편차)를 가진 정규 분포 의사 난수 부동 소수점 숫자를 생성하는 데이터 생성 함수예요.

출처: 공식 문서

본문

지정된 mean과 stddev(표준편차)를 가진 정규 분포 의사 난수 부동 소수점 숫자를 생성합니다.

구문 (Syntax)

NORMAL( <mean> , <stddev> , <gen> )

인자 (Arguments)

mean

출력 값이 중심으로 맞춰져야 하는 값을 지정하는 상수입니다.

stddev

한 표준편차의 폭을 지정하는 상수입니다. 예를 들어 평균 0.0과 표준편차 1.0을 지정하면, 여러 번 호출에서 반환된 값의 약 68.2%가 -1.0과 +1.0 사이(즉 평균의 한 표준편차 안)에 있게 됩니다. 마찬가지로 평균 5.0과 표준편차 2를 선택하면, 값의 약 68.2%가 3.0과 7.0 사이에 있게 됩니다.

gen

균일 난수의 원시 소스 역할을 하는 표현식으로, 일반적으로 RANDOM 함수입니다. 자세한 내용은 Data Generation Functions 사용 참고를 참고하세요.

반환값 (Returns)

무작위 부동 소수점 숫자를 반환합니다. 반복 호출을 많이 누적한 결과는 정규 분포에 근사합니다.

사용 참고 (Usage notes)

이 함수는 반환 값의 범위와 분포 양쪽에서 RANDOM 함수와 관련이 있지만 다릅니다.

  • RANDOM은 균일 분포의 무작위 64비트 정수를 생성합니다. 임의 시퀀스를 반복할 수 있게 하는 선택적 시드(seed)를 받아들입니다. RANDOM을 여러 번 호출하면 결과는 가능한 값의 범위에 어느 정도 고르게 분포됩니다. 예를 들어 1000과 2000 사이 값의 결과 수는 2000과 3000 사이 값의 수와 비슷합니다.

  • NORMAL은 지정된 평균을 중심으로 지정된 표준편차를 가진 무작위 정수 또는 부동 소수점 숫자를 생성합니다. NORMAL을 여러 번 호출하면 결과의 분포는 "정규" 곡선("종 모양 곡선")에 근사할 가능성이 높습니다. 곡선의 중심과 "폭"은 mean과 stddev 매개변수의 영향을 받습니다. 지정된 평균에 가까운 값이 평균에서 먼 값보다 발생할 가능성이 더 높습니다.

예제 (Examples)

평균 0과 표준편차 1을 사용하는 전형적인 용법을 보여줍니다:

SELECT normal(0, 1, random()) FROM table(generator(rowCount => 5));

+------------------------+
| NORMAL(0, 1, RANDOM()) |
|------------------------|
|           0.227384164  |
|           0.9945290748 |
|          -0.2045078571 |
|          -1.594607893  |
|          -0.8213296842 |
+------------------------+

gen 매개변수가 상수이면 출력도 상수가 됨을 보여줍니다:

SELECT normal(0, 1, 1234) FROM table(generator(rowCount => 5));

+--------------------+
| NORMAL(0, 1, 1234) |
|--------------------|
|      -0.6604156716 |
|      -0.6604156716 |
|      -0.6604156716 |
|      -0.6604156716 |
|      -0.6604156716 |
+--------------------+

더 알아보기 (Learn more)