数学関数と演算子

数学演算子

演算子

説明

+

加算

-

減算

*

乗算

/

除算(整数除算は切り捨てを行います)

%

剰余(余り)

数学関数

abs(x) -> [入力と同じ]()

x の絶対値を返します。

cbrt(x) -> double()

x の立方根を返します。

ceil(x) -> [入力と同じ]()

これは ceiling() のエイリアスです。

ceiling(x) -> [入力と同じ]()

x を最も近い整数に切り上げた値を返します。

cosine_similarity(x, y) -> double()

疎ベクトル xy の間のコサイン類似度を返します。

SELECT cosine_similarity(MAP(ARRAY['a'], ARRAY[1.0]), MAP(ARRAY['a'], ARRAY[2.0])); -- 1.0
degrees(x) -> double()

ラジアン単位の角度 x を度に変換します。

e() -> double()

定数オイラー数を返します。

exp(x) -> double()

オイラー数を x のべき乗で累乗した値を返します。

floor(x) -> [入力と同じ]()

x を最も近い整数に切り捨てた値を返します。

from_base(string, radix) -> bigint()

指定されたradixを基数として解釈したstringの値を返します。

ln(x) -> double()

xの自然対数を返します。

log2(x) -> double()

xの底が2の対数を返します。

log10(x) -> double()

xの底が10の対数を返します。

mod(n, m) -> [入力と同じ]()

nmで割った余り(剰余)を返します。

pi() -> double()

定数Piを返します。

pow(x, p) -> double()

これはpower()のエイリアスです。

power(x, p) -> double()

xp乗した値を返します。

radians(x) -> double()

度単位の角度xをラジアンに変換します。

rand() -> double()

これはrandom()のエイリアスです。

random() -> double()

0.0 <= x < 1.0の範囲の疑似乱数値を返します。

random(n) -> [入力と同じ]()

0からn(nは含まない)までの疑似乱数を返します。

secure_rand() -> double()

これはsecure_random()のエイリアスです。

secure_random() -> double()

0.0 <= x < 1.0の範囲の暗号論的に安全な乱数値を返します。

secure_random(lower, upper) -> [入力と同じ]()

lower <= x < upper の範囲の暗号論的に安全な乱数値を返します。ここで lower < upper である必要があります。

round(x) -> [入力と同じ]()

xを最も近い整数に丸めた値を返します。

round(x, d) -> [入力と同じ]()

xを小数点以下d桁に丸めた値を返します。

sign(x) -> [入力と同じ]()

xの符号関数を返します。すなわち、

  • 引数が0の場合、0を返し、

  • 引数が0より大きい場合、1を返し、

  • 引数が0より小さい場合、-1を返します。

double型の引数の場合、この関数はさらに、

  • 引数がNaNの場合、NaNを返し、

  • 引数が+Infinityの場合、1を返し、

  • 引数が-Infinityの場合、-1を返します。

sqrt(x) -> double()

xの平方根を返します。

to_base(x, radix) -> varchar()

xradix進数表現を返します。

truncate(x) -> double()

小数点以下の桁を切り捨てることで、xを整数に丸めた値を返します。

truncate(x, n) -> double()

xを小数点以下n桁に切り捨てた値を返します。nを負にすると、小数点から左にn桁を切り捨てます。

例: truncate(REAL '12.333', -1) -> 結果は10.0 truncate(REAL '12.333', 0) -> 結果は12.0 truncate(REAL '12.333', 1) -> 結果は12.3

width_bucket(x, bound1, bound2, n) -> bigint()

指定されたbound1bound2の境界とn個のバケット数を持つ等幅ヒストグラムにおけるxのビン番号を返します。

width_bucket(x, bins) -> bigint()

配列binsで指定されたビンに従って、xのビン番号を返します。binsパラメーターはdouble型の配列である必要があり、ソートされた昇順であると想定されます。

確率関数: cdf

beta_cdf(a, b, value) -> double()

指定されたa, bパラメータを持つベータ分布の累積分布関数を計算します: P(N < value; a, b)。a, bパラメータは正の実数でなければならず、valueは実数(すべてdouble型)でなければなりません。valueは[0, 1]の区間に存在する必要があります。

binomial_cdf(numberOfTrials, successProbability, value) -> double()

与えられたnumberOfTrialsとsuccessProbability(1回の試行に対する)を持つ二項分布の累積分布関数を計算します: P(N < value)。successProbabilityは[0, 1]の範囲の実数値でなければならず、numberOfTrialsとvalueはnumberOfTrialsがvalue以上である正の整数でなければなりません。

cauchy_cdf(median, scale, value) -> double()

与えられた中央値とスケール(gamma)パラメータを持つコーシー分布の累積分布関数を計算します: P(N; median, scale)。scaleパラメータは正のdouble型でなければなりません。valueパラメータは[0, 1]の区間のdouble型でなければなりません。

chi_squared_cdf(df, value) -> double()

与えられたdf(自由度)パラメータを持つカイ二乗分布の累積分布関数を計算します: P(N < value; df)。dfパラメータは正の実数でなければならず、valueは非負の実数(両方ともDOUBLE型)でなければなりません。

f_cdf(df1, df2, value) -> double()

与えられたdf1(分子の自由度)とdf2(分母の自由度)のパラメータを持つF累積分布関数を計算します: P(N < value; df1, df2)。分子と分母のdfパラメータは正の実数でなければなりません。valueは非負の実数でなければなりません。

gamma_cdf(shape, scale, value) -> double()

与えられたshapeとscaleのパラメータを持つガンマ累積分布関数を計算します: P(N < value; shape, scale)。shapeとscaleのパラメータは正の実数でなければなりません。valueは非負の実数でなければなりません。

laplace_cdf(mean, scale, value) -> double()

与えられたmeanとscaleのパラメータを持つラプラス累積分布関数を計算します: P(N < value; mean, scale)。meanとvalueは実数値でなければならず、scaleパラメータは正の値(すべてDOUBLE型)でなければなりません。

normal_cdf(mean, sd, value) -> double()

与えられたmeanと標準偏差(sd)を持つ正規累積分布関数を計算します: P(N < value; mean, sd)。meanとvalueは実数値でなければならず、標準偏差は実数かつ正の値(すべてDOUBLE型)でなければなりません。

poisson_cdf(lambda, value) -> double()

与えられたlambda(平均)パラメータを持つポアソン累積分布関数を計算します: P(N <= value; lambda)。lambdaパラメータは正の実数(DOUBLE型)でなければならず、valueは非負の整数でなければなりません。

weibull_cdf(a, b, value) -> double()

与えられたパラメータa, bを持つワイブル累積分布関数を計算します: P(N <= value)。abのパラメータは正のdouble型でなければならず、valueもdouble型でなければなりません。

確率関数:逆累積分布関数

inverse_beta_cdf(a, b, p) -> double()

与えられたa, bパラメータを持つベータ累積分布関数の逆関数を、累積確率(p)に対して計算します: P(N < n)。a, bパラメータは正の実数値(すべてDOUBLE型)でなければなりません。確率pは区間[0, 1]に含まれる必要があります。

inverse_binomial_cdf(numberOfTrials, successProbability, p) -> int()

与えられたnumberOfTrialsとsuccessProbability(単一試行の成功確率)を持つ二項累積分布関数の逆関数を、累積確率(p)に対して計算します: P(N <= n)。successProbabilityとpは[0, 1]の実数値でなければならず、numberOfTrialsは正の整数でなければなりません。

inverse_cauchy_cdf(median, scale, p) -> double()

与えられたパラメータmedianとscale(gamma)を持つコーシー累積分布関数の逆関数を、確率pに対して計算します。scaleパラメータは正のdouble型でなければなりません。確率pは区間[0, 1]のdouble型でなければなりません。

inverse_chi_squared_cdf(df, p) -> double()

与えられたdf(自由度)パラメータを持つカイ二乗累積分布関数の逆関数を、累積確率(p)に対して計算します: P(N < n)。dfパラメータは正の実数値でなければなりません。確率pは区間[0, 1]に含まれる必要があります。

inverse_gamma_cdf(shape, scale, p) -> double()

与えられたshapeとscaleのパラメータを持つガンマ累積分布関数の逆関数を、累積確率(p)に対して計算します: P(N < n)。shapeとscaleパラメータは正の実数値でなければなりません。確率pは区間[0, 1]に含まれる必要があります。

inverse_f_cdf(df1, df2, p) -> double()

与えられたdf1(分子の自由度)とdf2(分母の自由度)のパラメータを持つF累積分布関数の逆関数を、累積確率(p)に対して計算します: P(N < n)。分子と分母のdfパラメータは正の実数でなければなりません。確率pは区間[0, 1]に含まれる必要があります。

inverse_laplace_cdf(mean, scale, p) -> double()

与えられたmeanとscaleのパラメータを持つラプラス累積分布関数の逆関数を、累積確率(p)に対して計算します: P(N < n)。meanは実数値でなければならず、scaleは正の実数値(両方ともDOUBLE型)でなければなりません。確率pは区間[0, 1]に含まれる必要があります。

inverse_normal_cdf(mean, sd, p) -> double()

与えられたmeanと標準偏差(sd)を持つ正規累積分布関数の逆関数を、累積確率(p)に対して計算します: P(N < n)。meanは実数値でなければならず、標準偏差は実数かつ正の値(両方ともDOUBLE型)でなければなりません。確率pは区間(0, 1)に含まれる必要があります。

inverse_poisson_cdf(lambda, p) -> integer()

与えられたlambda(平均)パラメータを持つポアソン累積分布関数の逆関数を、累積確率(p)に対して計算します。P(N <= n; lambda) = pとなるようなnの値を返します。lambdaパラメータは正の実数(DOUBLE型)でなければなりません。確率pは区間[0, 1)に含まれる必要があります。

inverse_weibull_cdf(a, b, p) -> double()

与えられたパラメータa, bを持つワイブル累積分布関数の逆関数を、確率pに対して計算します。a, bパラメータは正のdouble値でなければなりません。確率pは区間[0, 1]のdouble型でなければなりません。

統計関数

wilson_interval_lower(successes, trials, z) -> double()

ベルヌーイ試行プロセスのウィルソンスコア区間の下限を、zスコアzで指定された信頼度で返します。

wilson_interval_upper(successes, trials, z) -> double()

ベルヌーイ試行プロセスのウィルソンスコア区間の上限を、zスコアzで指定された信頼度で返します。

三角関数

すべての三角関数の引数はラジアンで表現されます。単位変換関数degrees()radians()を参照してください。

acos(x) -> double()

xのアークコサインを返します。

asin(x) -> double()

x のアークサインを返します。

atan(x) -> double()

x のアークタンジェントを返します。

atan2(y, x) -> double()

y / x のアークタンジェントを返します。

cos(x) -> double()

x のコサインを返します。

cosh(x) -> double()

x の双曲線コサインを返します。

sin(x) -> double()

x のサインを返します。

tan(x) -> double()

x のタンジェントを返します。

tanh(x) -> double()

x の双曲線タンジェントを返します。

浮動小数点関数

infinity() -> double()

正の無限大を表す定数を返します。

is_finite(x) -> boolean()

x が有限であるかどうかを判定します。

is_infinite(x) -> boolean()

x が無限大であるかどうかを判定します。

is_nan(x) -> boolean()

x が非数(NaN)であるかどうかを判定します。

nan() -> double()

非数(NaN)を表す定数を返します。