本文為您介紹Hologres已支援的數學函數及使用用例。
關於相容PostgreSQL的數學函數的詳細使用方法,請參見數學函數。
本文樣本的返回結果基於psql用戶端的預設顯示精度(extra_float_digits = 0)。浮點類型結果的實際顯示位元會隨用戶端extra_float_digits設定不同而變化,數值本身一致。
|
類型 |
函數 |
功能 |
|
通用數學函數 |
計算絕對值。 |
|
|
計算立方根。 |
||
|
向上取整。 |
||
|
向上取整。 |
||
|
將弧度轉換為角度。 |
||
|
計算指數。 |
||
|
向下取整。 |
||
|
計算自然對數。 |
||
|
計算常用對數。 |
||
|
計算運算式除以x的餘數。 |
||
|
擷取π常量。 |
||
|
計算a的b次冪。 |
||
|
計算角度轉換為弧度。 |
||
|
擷取一個隨機數。 |
||
|
計算運算式四捨五入後的整數值或保留固定小數位元。 |
||
|
計算運算式的符號。 |
||
|
計算運算式的平方根。 |
||
|
去掉運算式的小數位或保留固定小數位元。 |
||
|
計算某個值在桶中某區間的編號。 |
||
|
計算 y 除以 x 的整數商。 |
||
|
三角函數 |
計算運算式的反餘弦值。 |
|
|
計算運算式的反正弦值。 |
||
|
計算運算式的反正切值。 |
||
|
計算 |
||
|
計算運算式的餘弦值。 |
||
|
計算運算式的餘切值。 |
||
|
計算運算式的正弦值。 |
||
|
計算運算式的正切值。 |
通用數學函數
ABS
-
描述:計算絕對值。
ABS(num) -
參數說明:
num:必填,支援類型包括INT、BIGINT、REAL、DOUBLE PRECISION、NUMERIC和DECIMAL。 -
傳回值說明:
與參數類型一致。
-
樣本:
SELECT ABS(-17.4);返回結果如下。
abs ----- 17.4
CBRT
-
描述:計算立方根。
CBRT(num) -
參數說明:
num:必填,類型為DOUBLE PRECISION。 -
傳回值說明:
傳回值類型為DOUBLE PRECISION。
-
樣本:
SELECT CBRT(9);返回結果如下。
cbrt ----------------- 2.0800838230519
CEIL
-
描述:向上取整。
CEIL(num) -
參數說明:
num:必填,類型為DOUBLE PRECISION或NUMERIC。 -
傳回值說明:
與參數類型一致。
-
樣本:
SELECT CEIL(9.2);返回結果如下。
ceil ------ 10
CEILING
-
描述:向上取整。
CEILING(num) -
參數說明:
num:必填,類型為DOUBLE PRECISION或NUMERIC。 -
傳回值說明:
與參數類型一致。
-
樣本:
SELECT CEILING(9.2);返回結果如下。
ceiling --------- 10
DEGREES
-
描述:將弧度轉換為角度。
DEGREES(num) -
參數說明:
num:必填,類型為DOUBLE PRECISION。 -
傳回值說明:
傳回值類型為DOUBLE PRECISION。
-
樣本:
SELECT DEGREES(3.2);返回結果如下。
degrees -------------- 183.34649444186343
EXP
-
描述:計算指數。
EXP(num) -
參數說明:
num:必填,類型為DOUBLE PRECISION或NUMERIC。 -
傳回值說明:
與參數類型一致。
-
樣本:
SELECT EXP(1);返回結果如下。
exp ---------------- 2.718281828459045
FLOOR
-
描述:向下取整。
FLOOR(num) -
參數說明:
num:必填,類型為DOUBLE PRECISION或NUMERIC。 -
傳回值說明:
與參數類型一致。
-
樣本:
SELECT FLOOR(3.8);返回結果如下。
floor ------ 3
LN
-
描述:計算自然對數。
LN(num) -
參數說明:
num:必填,類型為DOUBLE PRECISION或NUMERIC。 -
傳回值說明:
與參數類型一致。
-
樣本:
SELECT LN(3.8);返回結果如下。
ln ---------------- 1.3350010667323401
LOG
-
描述:
-
計算以 10 為底的常用對數。
LOG(num) -
計算以 b 為底 x 的對數(雙參數形式)。
LOG(b, x)
-
-
參數說明:
-
單參數形式:
num:必填,類型為DOUBLE PRECISION或NUMERIC。 -
雙參數形式:
b:必填,對數底數,類型為NUMERIC;x:必填,真數,類型為NUMERIC。
-
-
傳回值說明:
與參數類型一致。
-
樣本:
-
樣本1(單參數):
SELECT LOG(100);返回結果如下。
log ----- 2 -
樣本2(雙參數):
SELECT LOG(2, 8);返回結果如下。
log -------------------- 3.0000000000000000
-
MOD
-
描述:計算運算式除以x的餘數。
MOD(num, x) -
參數說明:
-
num:必填,數實值型別參數。 -
x:必填,數實值型別參數。
-
-
傳回值說明:
與參數類型一致。
-
樣本:
SELECT MOD(9,4);返回結果如下。
mod ----- 1
PI
-
描述:擷取π常量。
PI() -
傳回值說明:
返回π常量。
-
樣本:
SELECT PI();返回結果如下。
pi ------------------ 3.14159265358979
POWER
-
描述:計算a的b次冪。
POWER(a, b) -
參數說明:
-
a:必填,類型為DOUBLE PRECISION。 -
b:必填,類型為DOUBLE PRECISION。
-
-
傳回值說明:
傳回值類型為DOUBLE PRECISION。
-
樣本:
SELECT POWER(9, 3);返回結果如下。
power ------- 729
RADIANS
-
描述:角度轉換為弧度。
RADIANS(num) -
參數說明:
num:必填,類型為DOUBLE PRECISION。
-
傳回值說明:
傳回值類型為DOUBLE PRECISION。
-
樣本:
SELECT RADIANS(45);返回結果如下。
radians ------------------- 0.785398163397448
RANDOM
-
描述:擷取一個隨機數。
RANDOM() -
傳回值說明:
返回一個隨機數,類型為DOUBLE PRECISION,範圍為
[0.0, 1.0)。 -
樣本:
SELECT RANDOM();返回結果如下。
random ------------------- 0.377819478977472
ROUND
-
描述:
-
計算運算式四捨五入後的整數值。
ROUND(num) -
計算運算式四捨五入後的值,且保留s位小數。
ROUND(num1, s)
-
-
參數說明:
-
num:必填,若單入參時,數實值型別為DOUBLE PRECISION或NUMERIC;若雙入參時,僅支援NUMERIC類型。 -
s:選填,類型為INT。
-
-
傳回值說明:
與參數類型一致。
-
樣本:
SELECT ROUND(42.4);返回結果如下。
round ------- 42
SIGN
-
描述:計算運算式的符號。
SIGN(num) -
參數說明:
num:必填,類型為DOUBLE PRECISION或NUMERIC。
-
傳回值說明:
參數值大於0返回1,小於0返回-1,等於0返回0。
-
樣本:
SELECT SIGN(-8.4);返回結果如下。
sign ------ -1
SQRT
-
描述:計算運算式的平方根。
SQRT(num) -
參數說明:
num:必填,類型為DOUBLE PRECISION或NUMERIC。
-
傳回值說明:
與參數類型一致。
-
樣本:
SELECT SQRT(2);返回結果如下。
sqrt ----------------- 1.4142135623731
TRUNC
-
描述:
-
去掉運算式的小數位。
TRUNC(num) -
去掉運算式的小數位,保留小數位置到s位。
TRUNC(num, s)
-
-
參數說明:
-
num:必填,類型為NUMERIC。 -
s:選填,類型為INT。
-
-
傳回值說明:
傳回值類型為NUMERIC。
-
樣本:
-
樣本1:
SELECT TRUNC(2.456);傳回值如下。
trunc ------- 2 -
樣本2:
SELECT TRUNC(2.4564, 2);傳回值如下。
trunc ------- 2.45
-
WIDTH_BUCKET
-
描述:計算某個值在桶中某區間的編號。
WIDTH_BUCKET(value, start, end, num_buckets) -
參數說明:
value:必填,要進行分桶的目標值。資料類型為DOUBLE PRECISION或NUMERIC。start:必填,區間的起始值。資料類型為DOUBLE PRECISION或NUMERIC。end:必填,區間的結束值。資料類型為DOUBLE PRECISION或NUMERIC。num_buckets:必填,要劃分的桶(區間)的數量。資料類型為INT。 -
傳回值說明:
傳回值資料類型為INT。
-
樣本:
--範圍從0到100的資料,分成5個桶,45落在(40, 60)的範圍內,第三個桶。 SELECT WIDTH_BUCKET(45, 0, 100, 5);返回結果如下。
width_bucket -------------- 3
DIV
-
描述:計算 y 除以 x 的整數商(截斷小數部分)。
DIV(y, x) -
參數說明:
-
y:必填,數實值型別(INT、BIGINT、NUMERIC)。 -
x:必填,數實值型別(INT、BIGINT、NUMERIC),不能為 0。
-
-
傳回值說明:
與參數類型一致。
-
樣本:
SELECT DIV(9, 4);返回結果如下。
div ----- 2
三角函數
ACOS
-
描述:計算運算式的反餘弦值。
ACOS(num) -
參數說明:
num:必填,數實值型別參數。範圍在[-1,1]之間。 -
傳回值說明:
傳回值類型為DOUBLE PRECISION。
-
樣本:
SELECT ACOS(-1);返回結果如下。
acos ------------------ 3.14159265358979
ASIN
-
描述:計算運算式的反正弦值。
ASIN(num) -
參數說明:
num:必填,類型為DOUBLE PRECISION。範圍在[-1,1]之間。 -
傳回值說明:
傳回值類型為DOUBLE PRECISION。
-
樣本:
SELECT ASIN(-1);返回結果如下。
asin ------------------ -1.5707963267949
ATAN
-
描述:計算運算式的反正切值。
ATAN(num) -
參數說明:
num:必填,類型為DOUBLE PRECISION。 -
傳回值說明:
傳回值類型為DOUBLE PRECISION。
-
樣本:
SELECT ATAN(2);返回結果如下。
atan ------------------ 1.10714871779409
ATAN2
-
描述:計算
y/x的反正切值。ATAN2(y, x); -
參數說明:
-
y:必填,類型為DOUBLE PRECISION。 -
x:必填,類型為DOUBLE PRECISION。
-
-
傳回值說明:
傳回值類型為DOUBLE PRECISION。
-
樣本:
SELECT ATAN2(4, 2);返回結果如下。
atan2 ------------------ 1.10714871779409
COS
-
描述:計算運算式的餘弦值。
COS(num) -
參數說明:
num:必填,類型為DOUBLE PRECISION。 -
傳回值說明:
傳回值類型為DOUBLE PRECISION。
-
樣本:
SELECT COS(2);返回結果如下。
cos -------------------- -0.416146836547142
COT
-
描述:計算運算式的餘切值。
COT(num) -
參數說明:
num:必填,類型為DOUBLE PRECISION。 -
傳回值說明:
傳回值類型為DOUBLE PRECISION。
-
樣本:
SELECT COT(2);返回結果如下。
cot -------------------- -0.457657554360286
SIN
-
描述:計算運算式的正弦值。
SIN(num) -
參數說明:
num:必填,類型為DOUBLE PRECISION。 -
傳回值說明:
傳回值類型為DOUBLE PRECISION。
-
樣本:
SELECT SIN(2);返回結果如下。
sin ------------------- 0.909297426825682
TAN
-
描述:計算運算式的正切值。
TAN(num) -
參數說明:
num:必填,類型為DOUBLE PRECISION。 -
傳回值說明:
傳回值類型為DOUBLE PRECISION。
-
樣本:
SELECT TAN(2);返回結果如下。
tan ------------------- -2.18503986326152