文档

数学函数和操作符

更新时间:

云原生数据仓库 AnalyticDB PostgreSQL 版兼容PostgreSQL数学函数和操作符。本文简单列举云原生数据仓库 AnalyticDB PostgreSQL 版兼容的数学函数和操作符及用法示例。

PostgreSQL数学函数和操作符的详细使用方法,请参见PostgreSQL官方文档:数学函数和操作符

数学操作符

数学操作符是数学和编程语言中用于执行基本数学运算的符号或函数。这些操作符用于数值计算,包括但不限于加法、减法、乘法、除法以及更复杂的数学运算。

操作符

描述

例子

结果

+

2 + 3

5

-

2 - 3

-1

*

2 * 3

6

/

除(整数除法截断结果)

4 / 2

2

%

模(取余)

5 % 4

1

^

指数(从左至右结合)

2.0 ^ 3.0

8

|/

平方根

|/ 25.0

5

||/

立方根

||/ 27.0

3

!

阶乘

5 !

120

!!

阶乘(前缀操作符)

!! 5

120

@

绝对值

@ -5.0

5

&

按位与

91 & 15

11

|

按位或

32 | 3

35

#

按位异或

17 # 5

20

~

按位求反

~1

-2

<<

按位左移

1 << 4

16

>>

按位右移

8 >> 2

2

数学函数

数学函数是一类特殊的数学表达式,它将一个或多个变量的自变量映射到另一个值。例如,线性函数y = mx + b,其中m和b是常数,x是自变量,y是因变量。其他常见的函数包括指数函数、对数函数、三角函数等。

函数

返回类型

描述

例子

结果

abs(x)

和输入相同。

绝对值。

abs(-17.4)

17.4

cbrt(dp)

dp

立方根。

cbrt(27.0)

3

ceil(dp or numeric)

和输入相同。

不小于参数的最近的整数。

ceil(-42.8)

-42

ceiling(dp or numeric)

和输入相同。

不小于参数的最近的整数(ceil的别名)。

ceiling(-95.3)

-95

degrees(dp)

dp

把弧度转为角度。

degrees(0.5)

28.6478897565412

div(y numeric, x numeric)

numeric

y/x的整数商。

div(9,4)

2

exp(dp or numeric)

和输入相同。

指数。

exp(1.0)

2.71828182845905

floor(dp or numeric)

和输入相同。

不大于参数的最近的整数。

floor(-42.8)

-43

ln(dp or numeric)

和输入相同。

自然对数。

ln(2.0)

0.693147180559945

log(dp or numeric)

和输入相同。

以10为底的对数。

log(100.0)

2

log10(dp or numeric)

和输入相同。

以10为底的对数。

log10(100.0)

2

log(b numeric,x numeric)

numeric

b为底的对数。

log(2.0, 64.0)

6.0000000000

mod(y,x)

和参数类型相同。

y/x的余数。

mod(9,4)

1

pi()

dp

“π”常数。

pi()

3.14159265358979

power(a dp,b dp)

dp

ab次幂。

power(9.0, 3.0)

729

power(a numeric,b numeric)

numeric

ab次幂。

power(9.0, 3.0)

729

radians(dp)

dp

把角度转为弧度。

radians(45.0)

0.785398163397448

round(dp or numeric)

和输入相同。

圆整为最接近的整数。

round(42.4)

42

round(v numeric,s int)

numeric

圆整为s位小数数字。

round(42.4382, 2)

42.44

scale(numeric)

integer

参数的精度(小数点后的位数)。

scale(8.41)

2

sign(dp or numeric)

和输入相同。

参数的符号(-1、 0、+1)

sign(-8.4)

-1

sqrt(dp or numeric)

和输入相同。

平方根。

sqrt(2.0)

1.4142135623731

trunc(dp or numeric)

和输入相同。

截断(向零靠近)。

trunc(42.8)

42

trunc(v numeric,s int)

numeric

截断为s位小数位置的数字。

trunc(42.4382, 2)

42.43

width_bucket(operand dp,b1 dp,b2 dp,count int)

int

返回一个桶号,这个桶是在一个柱状图中operand将被分配的那个桶,该柱状图有count个散布在范围b1b2上的等宽桶。对于超过该范围的输入,将返回0或者+1

width_bucket(5.35, 0.024, 10.06, 5)

3

width_bucket(operand numeric,b1 numeric,b2 numeric,count int)

int

返回一个桶号,这个桶是在一个柱状图中operand将被分配的那个桶,该柱状图有count个散布在范围b1b2上的等宽桶。对于超过该范围的输入,将返回0或者+1

width_bucket(5.35, 0.024, 10.06, 5)

3

width_bucket(operand anyelement,thresholds anyarray)

int

返回一个桶号,这个桶是在给定数组中operand将被分配的桶,该数组列出了桶的下界。对于一个低于第一个下界的输入返回0thresholds数组必须被排好序, 最小的排在最前面,否则将会得到意想不到的结果。

width_bucket(now(), array['yesterday', 'today', 'tomorrow']::timestamptz[])

2

随机函数

随机函数是一种不确定性的函数,它的输出结果可能是任何可能的结果之一,而不是确定的一个特定值。

函数

返回类型

描述

random()

dp

范围 0.0 <= x < 1.0的随机值。

setseed(dp)

void

为后续的random()调用设置种子(值为于 -1.0 和 1.0 之间,包括边界值)。

三角函数

三角函数是一类特殊的函数,它们与直角三角形的角度有关。最常见的三角函数有正弦(sin)、余弦(cos)和正切(tan)。这些函数可以用来计算直角三角形中各个角度的大小,也可以用来解决更复杂的几何问题。

函数(弧度)

函数(角度)

描述

acos(x)

acosd(x)

反余弦

asin(x)

asind(x)

反正弦

atan(x)

atand(x)

反正切

atan2(y,x)

atan2d(y,x)

y/x的反正切

cos(x)

cosd(x)

余弦

cot(x)

cotd(x)

余切

sin(x)

sind(x)

正弦

tan(x)

tand(x)

正切

双曲函数

双曲函数是一类特殊的函数,它们与双曲线有关。最常见的双曲函数有双曲正弦(sinh)、双曲余弦(cosh)和双曲正切(tanh)。这些函数可以用来解决一些复杂的数学问题,比如求解微分方程。

函数

描述

举例

结果

sinh(x)

双曲正弦

sinh(0)

0

cosh(x)

双曲余弦

cosh(0)

1

tanh(x)

双曲切线

tanh(0)

0

asinh(x)

反双曲正弦

asinh(0)

0

acosh(x)

反双曲余弦

acosh(1)

0

atanh(x)

反双曲切线

atanh(0)

0