本文為您介紹Hologres已支持的數學函數及使用用例。
關于兼容PostgreSQL的字符串函數的詳細使用方法,請參見數學函數。
類型 | 函數 | 功能 |
通用數學函數 | 計算絕對值。 | |
計算立方根。 | ||
向上取整。 | ||
向上取整。 | ||
將弧度轉換為角度。 | ||
計算指數。 | ||
向下取整。 | ||
計算自然對數。 | ||
計算常用對數。 | ||
計算表達式除以x的余數。 | ||
獲取π常量。 | ||
計算a的b次冪。 | ||
計算角度轉換為弧度。 | ||
獲取一個隨機數。 | ||
計算表達式四舍五入后的整數值或保留固定小數位數。 | ||
計算表達式的符號。 | ||
計算表達式的平方根。 | ||
去掉表達式的小數位或保留固定小數位數。 | ||
計算某個值在桶中某區(qū)間的編號。 | ||
三角函數 | 計算表達式的反余弦值。 | |
計算表達式的反正弦值。 | ||
計算表達式的反正切值。 | ||
計算 | ||
計算表達式的余弦值。 | ||
計算表達式的余切值。 | ||
計算表達式的正弦值。 | ||
計算表達式的正切值。 |
通用數學函數
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
描述:計算某個值在桶中某區(qū)間的編號。
WIDTH_BUCKET(value, start, end, num_buckets)
參數說明:
value
:必填,要進行分桶的目標值。數據類型為DOUBLE PRECISION或NUMERIC。start
:必填,區(qū)間的起始值。數據類型為DOUBLE PRECISION或NUMERIC。end
:必填,區(qū)間的結束值。數據類型為DOUBLE PRECISION或NUMERIC。num_buckets
:必填,要劃分的桶(區(qū)間)的數量。數據類型為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