类别:

数据生成函数

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
语言: 中文