本文为您介绍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