數學函數和運算子¶
數學運算子¶
運算子 |
描述 |
---|---|
|
加法 |
|
減法 |
|
乘法 |
|
除法(整數除法會執行截斷) |
|
模數(餘數) |
數學函數¶
- abs(x) -> [與輸入相同]()¶
傳回
x
的絕對值。
- cbrt(x) -> double()¶
傳回
x
的立方根。
- ceil(x) -> [與輸入相同]()¶
這是
ceiling()
的別名。
- ceiling(x) -> [與輸入相同]()¶
傳回
x
四捨五入到最接近的整數。
- cosine_similarity(x, y) -> double()¶
傳回稀疏向量
x
和y
之間的餘弦相似度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(字串, 基數) -> bigint()¶
傳回解譯為基數-
radix
數字的string
值。
- ln(x) -> double()¶
傳回
x
的自然對數。
- log2(x) -> double()¶
傳回
x
的以 2 為底的對數。
- log10(x) -> double()¶
傳回
x
的以 10 為底的對數。
- mod(n, m) -> [與輸入相同]()¶
傳回
n
除以m
的模數(餘數)。
- pi() -> double()¶
傳回常數 Pi。
- pow(x, p) -> double()¶
這是
power()
的別名。
- power(x, p) -> double()¶
傳回
x
的p
次方。
- radians(x) -> double()¶
將以度為單位的角度
x
轉換為弧度。
- rand() -> double()¶
這是
random()
的別名。
- random() -> double()¶
傳回範圍在 0.0 <= x < 1.0 之間的偽隨機值。
- random(n) -> [與輸入相同]()¶
傳回 0 到 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。
對於雙精度浮點數引數,此函數額外傳回
如果引數為 NaN,則為 NaN,
如果引數為 +Infinity,則為 1,
如果引數為 -Infinity,則為 -1。
- sqrt(x) -> double()¶
傳回
x
的平方根。
- to_base(x, radix) -> varchar()¶
傳回
x
的以radix
為底的表示法。
- truncate(x) -> double()¶
傳回
x
捨去小數點後的位數四捨五入為整數。
- truncate(x, n) -> double()¶
傳回
x
截斷到n
個小數位。n
可以是負數,以截斷小數點左邊的n
位數字。範例:
truncate(REAL '12.333', -1)
-> 結果為 10.0truncate(REAL '12.333', 0)
-> 結果為 12.0truncate(REAL '12.333', 1)
-> 結果為 12.3
- width_bucket(x, bound1, bound2, n) -> bigint()¶
傳回在具有指定
bound1
和bound2
邊界以及n
個儲存區的等寬長條圖中,x
的儲存區編號。
- width_bucket(x, bins) -> bigint()¶
根據陣列
bins
指定的儲存區,傳回x
的儲存區編號。bins
參數必須是雙精度浮點數的陣列,並且假設是按排序遞增順序排列的。
機率函數:cdf¶
- beta_cdf(a, b, value) -> double()¶
計算具有給定 a、b 參數的 Beta cdf:P(N < value; a, b)。a、b 參數必須是正實數,而 value 必須是實數 (全部為 DOUBLE 類型)。值必須位於區間 [0, 1] 上。
- binomial_cdf(numberOfTrials, successProbability, value) -> double()¶
計算具有給定 numberOfTrials 和 successProbability (對於單次試驗) 的 Binomial cdf:P(N < value)。successProbability 必須是 [0, 1] 中的實數值,numberOfTrials 和 value 必須是正整數,且 numberOfTrials 大於或等於 value。
- cauchy_cdf(median, scale, value) -> double()¶
計算給定中位數和尺度 (gamma) 參數的柯西累積分布函數 (cdf):P(N; 中位數, 尺度)。尺度參數必須為正雙精度浮點數。數值參數必須為介於 [0, 1] 之間的雙精度浮點數。
- 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()¶
計算給定形狀和尺度參數的伽瑪累積分布函數:P(N < value; shape, scale)。形狀和尺度參數必須為正實數。value 必須為非負實數。
- laplace_cdf(mean, scale, value) -> double()¶
計算給定平均數和尺度參數的拉普拉斯累積分布函數:P(N < value; mean, scale)。平均數和 value 必須為實數值,而尺度參數必須為正值 (皆為 DOUBLE 類型)。
- normal_cdf(mean, sd, value) -> double()¶
計算給定平均數和標準差 (sd) 的常態累積分布函數:P(N < value; mean, sd)。平均數和 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)。
a
和b
參數必須為正雙精度浮點數,而value
也必須為雙精度浮點數。
機率函數:inverse_cdf¶
- inverse_beta_cdf(a, b, p) -> double()¶
計算給定累積機率 (p) 的 a, b 參數之貝塔累積分布函數的反函數: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()¶
計算給定機率 p 的中位數和尺度 (gamma) 參數之柯西累積分布函數的反函數。尺度參數必須為正雙精度浮點數。機率 p 必須為介於 [0, 1] 之間的雙精度浮點數。
- inverse_chi_squared_cdf(df, p) -> double()¶
計算給定累積機率 (p) 的自由度 (df) 參數之卡方累積分布函數的反函數:P(N < n)。df 參數必須為正實數值。機率 p 必須介於 [0, 1] 區間內。
- inverse_gamma_cdf(shape, scale, p) -> double()¶
計算給定累積機率 (p) 的形狀和尺度參數之伽瑪累積分布函數的反函數:P(N < n)。形狀和尺度參數必須為正實數值。機率 p 必須介於 [0, 1] 區間內。
- inverse_f_cdf(df1, df2, p) -> double()¶
計算給定累積機率 (p) 的 df1 (分子自由度) 和 df2 (分母自由度) 參數之 F 累積分布函數的反函數:P(N < n)。分子和分母的 df 參數必須為正實數。機率 p 必須介於 [0, 1] 區間內。
- inverse_laplace_cdf(mean, scale, p) -> double()¶
計算給定累積機率 (p) 的平均數和尺度參數之拉普拉斯累積分布函數的反函數:P(N < n)。平均數必須為實數值,而尺度必須為正實數值 (皆為 DOUBLE 類型)。機率 p 必須介於 [0, 1] 區間內。
- inverse_normal_cdf(mean, sd, p) -> double()¶
計算給定累積機率 (p) 的平均數和標準差 (sd) 之常態累積分布函數的反函數:P(N < n)。平均數必須為實數值,而標準差必須為正實數值 (皆為 DOUBLE 類型)。機率 p 必須介於 (0, 1) 區間內。
- inverse_poisson_cdf(lambda, p) -> integer()¶
計算給定累積機率 (p) 的 lambda (平均數) 參數之卜瓦松累積分布函數的反函數。它會傳回 n 的值,使得:P(N <= n; lambda) = p。lambda 參數必須為正實數 (DOUBLE 類型)。機率 p 必須介於 [0, 1) 區間內。
- inverse_weibull_cdf(a, b, p) -> double()¶
計算給定機率
p
的參數a
、b
之韋伯累積分布函數的反函數。a
、b
參數必須為正雙精度浮點數值。機率p
必須為介於 [0, 1] 之間的雙精度浮點數。
統計函數¶
- 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
是否為非數值 (Not-a-Number)。
- nan() -> double()¶
傳回表示非數值 (Not-a-Number) 的常數。