文档

数学函数

更新时间:

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