カテゴリ:

データ生成関数

UNIFORM

[min, max] を含む範囲で一様分布の疑似乱数を生成します。

構文

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

引数

min

生成された数値の最小値(最小値を含む)を指定する定数。

max

生成された数値の最大値(最大値を含む)を指定する定数。

gen

一様乱数の生のソースとして機能する式で、通常は RANDOM 関数です。詳細については、データ生成関数 使用上の注意 をご参照ください。

戻り値

min または max のいずれかまたは両方が浮動小数点数の場合、 UNIFORM は浮動小数点数を返します。 minmax の両方が整数の場合、 UNIFORM は整数を返します。

使用上の注意

この関数は RANDOM 関数に関連しますが、異なります。どちらの関数も一様分布を生成しますが、返される値の範囲には違いがあります。

  • RANDOM は、擬似乱数64ビット整数を生成します。シーケンスを繰り返すことができるオプションのシードを受け入れます。

  • UNIFORM は、指定された範囲でランダムな整数または浮動小数点数を生成します。

SELECT uniform(1, 10, random()) FROM table(generator(rowCount => 5));

--------------------------+
 uniform(1, 10, random()) |
--------------------------+
 6                        |
 4                        |
 7                        |
 9                        |
 4                        |
--------------------------+
Copy
SELECT uniform(0::float, 1::float, random()) FROM table(generator(rowCount => 5));

---------------------------------------+
 uniform(0::float, 1::float, random()) |
---------------------------------------+
 0.2895427479                          |
 0.7178660941                          |
 0.6925603163                          |
 0.05914526824                         |
 0.8243151404                          |
---------------------------------------+
Copy
SELECT uniform(1, 10, 1234) FROM table(generator(rowCount => 5));

----------------------+
 uniform(1, 10, 1234) |
----------------------+
 7                    |
 7                    |
 7                    |
 7                    |
 7                    |
----------------------+
Copy