- 类别:
UNIFORM¶
生成一个位于 [min
, max
] 范围(含两者)内的均匀分布的伪随机数。
语法¶
UNIFORM( <min> , <max> , <gen> )
实参¶
返回¶
如果 min
或/和 max
是浮点数,则 UNIFORM 返回浮点数。如果 min
和 max
都是整数,则 UNIFORM 返回一个整型。
使用说明¶
此函数与 RANDOM 函数相关,但却与其不同。这两个函数都生成均匀分布的数,但返回值的范围存在差异。
RANDOM 生成伪随机 64 位整数。它接受允许重复序列的可选种子。
UNIFORM 生成指定范围内的随机整数或浮点数。
示例¶
以下示例演示了如何使用 UNIFORM 函数。以下输出中显示的值可能与您自行运行这些示例时返回的值不同。
此示例生成 5 个 1 到 10(含)范围内的随机整数:
SELECT UNIFORM(1, 10, RANDOM()) FROM TABLE(GENERATOR(ROWCOUNT => 5));
+--------------------------+
| UNIFORM(1, 10, RANDOM()) |
|--------------------------|
| 6 |
| 1 |
| 8 |
| 5 |
| 6 |
+--------------------------+
此示例生成 5 个 0 到 1(含)范围内的浮点数:
SELECT UNIFORM(0::FLOAT, 1::FLOAT, RANDOM()) FROM TABLE(GENERATOR(ROWCOUNT => 5));
+---------------------------------------+
| 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));
+----------------------+
| UNIFORM(1, 10, 1234) |
|----------------------|
| 7 |
| 7 |
| 7 |
| 7 |
| 7 |
+----------------------+