本文为您介绍Hologres已支持的数学函数及使用用例。
关于兼容PostgreSQL的字符串函数的详细使用方法,请参见数学函数。
通用数学函数
函数名 | 描述 | 用例 | 结果 |
abs(bigint) | 返回BIGINT类型表达式的绝对值。 | abs(-17) | 17 |
abs(int) | 返回INT类型表达式的绝对值。 | abs(-17) | 17 |
abs(float8) | 返回FLOAT8类型表达式的绝对值。 | abs(-17.4) | 17.4 |
abs(float4) | 返回FLOAT4类型表达式的绝对值。 | abs(-17.4) | 17.4 |
abs(numeric) | 返回NUMERIC类型表达式的绝对值。 | abs(-17.4) | 17.4 |
cbrt(dp) | 返回DP类型表达式的立方根。 | cbrt(27.0) | 3.0000000000000004 |
ceil(dp ) | 对DP类型的表达式向上取整。 | ceil(-42.8) | -42.0 |
ceil(numeric) | 对NUMERIC类型的表达式向上取整。 | ceil(-42.8) | -42.0 |
ceiling(dp ) | 对DP类型的表达式向上取整。 | ceil(-42.8) | -42.0 |
ceiling(numeric) | 对NUMERIC类型的表达式向上取整。 | ceil(-42.8) | -42.0 |
degrees(float8) | 将FLOAT8类型表达式的弧度转换为角度。 | degrees(0.5) | 28.64788975654116 |
exp(float8) | 返回FLOAT8类型表达式的指数。 | exp(1.0) | 2.718281828459045 |
exp(numeric) | 返回NUMERIC类型表达式的指数。 | exp(1.0) | 2.718281828459045 |
floor(float8) | 对FLOAT8类型表达式向下取整。 | floor(-42.8) | -43.0 |
floor(numeric) | 对NUMERIC类型表达式向下取整。 | floor(-42.8) | -43.0 |
ln(float8) | 返回FLOAT8类型表达式的自然对数。 | ln(2.0) | 0.6931471805599453 |
ln(numeric) | 返回NUMERIC类型表达式的自然对数。 | ln(2.0) | 0.6931471805599453 |
log(float8) | 返回FLOAT8类型表达式的常用对数。 | log(100.0) | 2.0 |
log(numeric) | 返回NUMERIC类型表达式的常用对数。 | log(100.0) | 2.0 |
log(b numeric, x numeric) | 返回NUMERIC类型表达式的对数。 | log(2.0, 64.0) | 6.0 |
mod(bigint, x) | 求BIGINT类型表达式除以x的余数。 | mod(9,4) | 1 |
mod(int, x) | 求INT类型表达式除以x的余数。 | mod(9,4) | 1 |
pi() | 返回π常量。 | pi() | 3.141592653589793 |
power(a float8, b float8) | 求a的b次幂,a和b使用FLOAT8类型的表达式。 | power(9.0, 3.0) | 729.0 |
power(a numeric, b numeric) | 求a的b次幂,a和b使用NUMERIC类型的表达式。 | power(9.0, 3.0) | 729.0 |
radians(float8) | 将FLOAT8类型表达式的角度转换为弧度。 | radians(45.0) | 0.7853981633974483 |
random() | 获取一个随机数,返回值范围为[0.0,1.0)。 | random() | 0.3977345246821642 |
round(float8) | 返回FLOAT8类型表达式四舍五入后的整数值。 | round(42.4) | 42.0 |
round(numeric) | 返回NUMERIC类型表达式四舍五入后的整数值。 | round(42.4) | 42.0 |
round(v numeric, s int) | 保留s位小数,计算的类型必须是numeric类型。 | round((100/400::numeric),4); | 0.2500 |
sign(float8) | 返回FLOAT8类型表达式的符号。参数值大于0返回1,小于0返回-1 ,等于0返回0。 | sign(-8.4) | -1 |
sign(numeric) | 返回NUMERIC类型表达式的符号。参数值大于0返回1,小于0返回 -1 ,等于0返回0。 | sign(-8.4) | -1 |
sqrt(float8) | 返回FLOAT8类型表达式的平方根。 | sqrt(2.0) | 1.414213562373095 |
sqrt(numeric) | 返回NUMERIC类型表达式的平方根。 | sqrt(2.0) | 1.414213562373095 |
trunc(float8) | 去掉FLOAT8类型表达式的小数位。 | trunc(42.8) | 42.0 |
trunc(numeric) | 去掉NUMERIC类型表达式的小数位。 | trunc(42.8) | 42.0 |
trunc(v numeric, s int) | 截断NUMERIC类型表达式的小数位置到s位。 | trunc(42.4382, 2) | 42.43 |
width_bucket(operand numeric, b1 numeric, ...) | 返回OPERAND在BUCKET中的位置。 | width_bucket(5.35, 0.024, 10.06, 5) | 3 |
三角函数
函数名 | 描述 | 用例 | 结果 |
acos(bigint) | 返回BIGINT类型表达式的反余弦值。 | acos(1) | 0.0 |
acos(int) | 返回INT类型表达式的反余弦值。 | acos(1) | 0.0 |
acos(float8) | 返回FLOAT8类型表达式的反余弦值。 | acos(0.9) | 0.45102681179626236 |
acos(float4) | 返回FLOAT4类型表达式的反余弦值。 | acos(0.9) | 0.45102681179626236 |
acos(numeric) | 返回NUMERIC类型表达式的反余弦值。 | acos(0.9) | 0.45102681179626236 |
asin(bigint) | 返回BIGINT类型表达式的反正弦值。 | asin(1) | 1.5707963267948966 |
asin(int) | 返回INT类型表达式的反正弦值。 | asin(1) | 1.5707963267948966 |
asin(float8) | 返回FLOAT8类型表达式的反正弦值。 | asin(1.0) | 1.5707963267948966 |
asin(float4) | 返回FLOAT4类型表达式的反正弦值。 | asin(1.0) | 1.5707963267948966 |
asin(numeric) | 返回NUMERIC类型表达式的反正弦值。 | asin(1.0) | 1.5707963267948966 |
atan(bigint) | 返回BIGINT类型表达式的反正切值。 | atan(2) | 1.1071487177940904 |
atan(int) | 返回INT类型表达式的反正切值。 | atan(2) | 1.1071487177940904 |
atan(float8) | 返回FLOAT8类型表达式的反正切值。 | atan(2.0) | 1.1071487177940904 |
atan(float4) | 返回FLOAT4类型表达式的反正切值。 | atan(2.0) | 1.1071487177940904 |
atan(numeric) | 返回NUMERIC类型表达式的反正切值。 | atan(2.0) | 1.1071487177940904 |
atan2(bigint y, bigint x) | 取y/x的反正切值。y和x的数据类表达式为BIGINT。 | atan2(2, 1) | 1.1071487177940904 |
atan2(int y, int x) | 取y/x的反正切值。y和x的数据类表达式为INT。 | atan2(2, 1) | 1.1071487177940904 |
atan2(float8 y, float8 x) | 取y/x的反正切值。y和x的数据类表达式为FLOAT8。 | atan2(2.0, 1.0) | 1.1071487177940904 |
atan2(float4 y, float4 x) | 取y/x的反正切值。y和x的数据类表达式为FLOAT4。 | atan2(2.0, 1.0) | 1.1071487177940904 |
atan2(numeric y, numeric x) | 取y/x的反正切值。y和x的数据类表达式为NUMERIC。 | atan2(2.0, 1.0) | 1.1071487177940904 |
cos(bigint) | 返回BIGINT类型表达式的余弦值。 | cos(2) | -0.4161468365471424 |
cos(int) | 返回INT类型表达式的余弦值。 | cos(2) | -0.4161468365471424 |
cos(float8) | 返回FLOAT8类型表达式的余弦值。 | cos(2.0) | -0.4161468365471424 |
cos(float4) | 返回FLOAT4类型表达式的余弦值。 | cos(2.0) | -0.4161468365471424 |
cos(numeric) | 返回NUMERIC类型表达式的余弦值。 | cos(2.0) | -0.4161468365471424 |
cot(bigint) | 返回BIGINT类型表达式的余切值。 | cot(2) | -0.45765755436028577 |
cot(int) | 返回INT类型表达式的余切值。 | cot(2) | -0.45765755436028577 |
cot(float8) | 返回FLOAT8类型表达式的余切值。 | cot(2.0) | -0.45765755436028577 |
cot(float4) | 返回FLOAT4类型表达式的余切值。 | cot(2.0) | -0.45765755436028577 |
cot(numeric) | 返回NUMERIC类型表达式的余切值。 | cot(2.0) | -0.45765755436028577 |
sin(bigint) | 返回BIGINT类型表达式的正弦值。 | sin(2) | 0.9092974268256817 |
sin(int) | 返回INT类型表达式的正弦值。 | sin(2) | 0.9092974268256817 |
sin(float8) | 返回FLOAT8类型表达式的正弦值。 | sin(2.0) | 0.9092974268256817 |
sin(float4) | 返回FLOAT4类型表达式的正弦值。 | sin(2.0) | 0.909297268256817 |
sin(numeric) | 返回NUMERIC类型表达式的正弦值。 | sin(2.0) | 0.9092974268256817 |
tan(bigint) | 返回BIGINT类型表达式的正切值。 | tan(2) | -2.185039863261519 |
tan(int) | 返回INT类型表达式的正切值。 | tan(2) | -2.185039863261519 |
tan(float8) | 返回FLOAT8类型表达式的正切值。 | tan(2.0) | -2.185039863261519 |
tan(float4) | 返回FLOAT4类型表达式的正切值。 | tan(2.0) | -2.185039863261519 |
tan(numeric) | 返回NUMERIC类型表达式的正切值。 | tan(2.0) | -2.185039863261519 |