- カテゴリ:
NORMAL¶
指定された mean
および stddev
で正規分布の浮動小数点数を返します。
この関数は、類似する RANDOM 関数に関連しますが、異なります。
RAND
が多数回呼び出された場合、結果は可能な値の範囲にほぼ均等に分散されます。たとえば、1000~2000の値を持つ結果の数は、2000~3000の値の数に似ています。NORMAL
が何度も呼び出されると、結果の分布は「通常の」曲線(「ベル形の曲線」と呼ばれることもある)に近似する可能性があります。曲線の中心と曲線の「幅」は 、mean
およびstddev
パラメーターの影響を受けます。指定された平均に近い値は、平均から遠い値よりも発生する可能性が高くなります。
構文¶
NORMAL( <mean> , <stddev> , <gen> )
引数¶
mean
これは、出力値を中心にする値です。
stddev
これは、1つの標準偏差の幅を指定します。たとえば、0.0の平均と1.0の標準偏差を選択した場合、この関数を何度も呼び出すと、返される値の約68.2%が-1.0~+1.0の間になります(平均の1標準偏差以内)。
同様に、平均値5.0と標準偏差2を選択した場合、値の約68.2%は3.0~7.0の間になります。
gen
これは、関数のジェネレーター式を指定します。詳細については、 使用上の注意 をご参照ください。
使用上の注意¶
呼び出しの数が増えると、 gen
関数が均等に分布した値を生成すると仮定し、累積結果は真の「正規」分布に近づく傾向があります。
例¶
これは、平均が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 | +--------------------+