- 类别:
NORMAL¶
生成一个正态分布的伪随机浮点数,其具有指定的 mean
和 stddev
(标准差)。
语法¶
NORMAL( <mean> , <stddev> , <gen> )
实参¶
mean
用于指定在输出值中居中的值。
stddev
用于指定标准差宽度的常量。
例如,如果指定平均值为 0.0,标准差为 1.0,则多次调用中大约有 68.2% 的返回值介于 -1.0 和 +1.0 之间(即,位于平均值的一个标准差内)。
同样,如果您选择平均值 5.0 和标准差 2,则大约 68.2% 的值介于 3.0 和 7.0 之间。
gen
用作统一随机数(通常为
RANDOM
函数)的原始源的表达式。有关更多信息,请参阅数据生成函数 使用说明。
返回¶
返回随机浮点数。大量重复调用的累积结果近似于正态分布。
使用说明¶
此函数与 RANDOM 相关,但在返回值的范围及其分布方面,两者均不同。
RANDOM
在均匀分布中生成随机的 64 位整数。它接受允许重复随机序列的可选种子。当多次调用
RANDOM
时,结果或多或少均匀分布在可能值的范围内。例如,值介于 1000 和 2000 之间的结果数与介于 2000 和 3000 之间的值数相似。NORMAL
生成以指定平均值为中心的随机整数或浮点数,并具有指定的标准差。当多次调用
NORMAL
时,结果的分布可能近似于“正态”曲线(“钟形曲线”)。曲线的中心及其“宽度”受mean
和stddev
参数的影响。相较于远离平均值的值,接近指定平均值的值更有可能出现。
示例¶
此示例显示平均值为 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 | +--------------------+