本文為您介紹Hologres已支援的數學函數及使用用例。
關於相容PostgreSQL的字串函數的詳細使用方法,請參見數學函數。
類型 | 函數 | 功能 |
通用數學函數 | 計算絕對值。 | |
計算立方根。 | ||
向上取整。 | ||
向上取整。 | ||
將弧度轉換為角度。 | ||
計算指數。 | ||
向下取整。 | ||
計算自然對數。 | ||
計算常用對數。 | ||
計算運算式除以x的餘數。 | ||
擷取π常量。 | ||
計算a的b次冪。 | ||
計算角度轉換為弧度。 | ||
擷取一個隨機數。 | ||
計算運算式四捨五入後的整數值或保留固定小數位元。 | ||
計算運算式的符號。 | ||
計算運算式的平方根。 | ||
去掉運算式的小數位或保留固定小數位元。 | ||
計算某個值在桶中某區間的編號。 | ||
三角函數 | 計算運算式的反餘弦值。 | |
計算運算式的反正弦值。 | ||
計算運算式的反正切值。 | ||
計算 | ||
計算運算式的餘弦值。 | ||
計算運算式的餘切值。 | ||
計算運算式的正弦值。 | ||
計算運算式的正切值。 |
通用數學函數
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);
返回結果如下。
ceil ------ 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
描述:計算常用對數。
LOG(num)
參數說明:
num
:必填,類型為DOUBLE PRECISION或NUMERIC。傳回值說明:
與參數類型一致。
樣本:
SELECT LOG(100);
返回結果如下。
log ----- 2
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(num, s)
參數說明:
num
:必填,數實值型別為DOUBLE PRECISION或NUMERIC。說明如果需要精確保留小數位元,建議您將運算式
num
轉換為NUMERIC類型。否則會丟失小數位元精度。s
:選填,類型為INT。
傳回值說明:
與參數類型一致。
樣本:
樣本1:
SELECT ROUND(42.4);
返回結果如下。
round ------- 42
樣本2:
SELECT ROUND(100/400::NUMERIC, 3);
返回結果如下。
round -------- 0.2500
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
三角函數
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