Documentation
/ SQL
/ Functions
Numeric Functions
下表显示了可用于数值类型的数学运算符。
Operator |
Description |
Example |
Result |
+ |
加法 |
2 + 3 |
5 |
- |
减法 |
2 - 3 |
-1 |
* |
乘法 |
2 * 3 |
6 |
/ |
浮点数除法 |
5 / 2 |
2.5 |
// |
除法 |
5 // 2 |
2 |
% |
取模(余数) |
5 % 4 |
1 |
** |
指数 |
3 ** 4 |
81 |
^ |
指数(** 的别名) |
3 ^ 4 |
81 |
& |
按位与 |
91 & 15 |
11 |
| |
按位或 |
32 | 3 |
35 |
<< |
按位左移 |
1 << 4 |
16 |
>> |
按位右移 |
8 >> 2 |
2 |
~ |
按位取反 |
~15 |
-16 |
! |
x 的阶乘 |
4! |
24 |
有两种除法运算符:/
和 //
。
当至少有一个操作数是 FLOAT
或 DOUBLE
时,它们是等价的。
当两个操作数都是整数时,/
执行浮点除法(5 / 2 = 2.5
),而 //
执行整数除法(5 // 2 = 2
)。
取模、位运算、取反和阶乘运算符仅适用于整数数据类型,而其他运算符适用于所有数值数据类型。
下表显示了可用的数学函数。
Name |
Description |
@(x) |
绝对值。如果x 是列名,括号是可选的。 |
abs(x) |
绝对值。 |
acos(x) |
计算 x 的反余弦值。 |
add(x, y) |
x + y 的别名。 |
asin(x) |
计算 x 的反正弦值。 |
atan(x) |
计算 x 的反正切值。 |
atan2(y, x) |
计算反正切 (y, x) 。 |
bit_count(x) |
返回设置的位数。 |
cbrt(x) |
返回数字的立方根。 |
ceil(x) |
将数字向上取整。 |
ceiling(x) |
将数字向上取整。ceil 的别名。 |
cos(x) |
计算 x 的余弦值。 |
cot(x) |
计算 x 的余切值。 |
degrees(x) |
将弧度转换为角度。 |
divide(x, y) |
x // y 的别名。 |
even(x) |
通过向远离零的方向舍入到下一个偶数。 |
exp(x) |
计算 e ** x 。 |
factorial(x) |
参见 ! 操作符。计算当前整数及其以下所有整数的乘积。 |
fdiv(x, y) |
执行整数除法(x // y ),但返回一个DOUBLE 值。 |
floor(x) |
将数字向下取整。 |
fmod(x, y) |
计算模数值。总是返回一个DOUBLE 值。 |
gamma(x) |
对 x - 1 的阶乘进行插值。允许输入分数。 |
gcd(x, y) |
计算 x 和 y 的最大公约数。 |
greatest_common_divisor(x, y) |
计算 x 和 y 的最大公约数。 |
greatest(x1, x2, ...) |
选择最大的值。 |
isfinite(x) |
如果浮点值是有限的,则返回true,否则返回false。 |
isinf(x) |
如果浮点值是无限的,则返回 true,否则返回 false。 |
isnan(x) |
如果浮点值不是数字,则返回true,否则返回false。 |
lcm(x, y) |
计算 x 和 y 的最小公倍数。 |
least_common_multiple(x, y) |
计算 x 和 y 的最小公倍数。 |
least(x1, x2, ...) |
选择最小的值。 |
lgamma(x) |
计算gamma 函数的对数。 |
ln(x) |
计算 x 的自然对数。 |
log(x) |
计算 x 的以10为底的对数。 |
log10(x) |
log 的别名。计算 x 的以10为底的对数。 |
log2(x) |
计算x 的以2为底的对数。 |
multiply(x, y) |
x * y 的别名。 |
nextafter(x, y) |
返回在y 方向上x 之后的下一个浮点值。 |
pi() |
返回pi的值。 |
pow(x, y) |
计算 x 的 y 次方。 |
power(x, y) |
pow 的别名。计算 x 的 y 次方。 |
radians(x) |
将度数转换为弧度。 |
random() |
返回一个在范围 0.0 <= x < 1.0 内的随机数 x 。 |
round_even(v NUMERIC, s INTEGER) |
roundbankers(v, s) 的别名。使用四舍六入五成双规则将数值四舍五入到 s 位小数。允许 s < 0 的值。 |
round(v NUMERIC, s INTEGER) |
四舍五入到 s 位小数。允许 s < 0 的值。 |
setseed(x) |
设置用于随机函数的种子。 |
sign(x) |
返回 x 的符号,为 -1、0 或 1。 |
signbit(x) |
返回是否设置了符号位。 |
sin(x) |
计算 x 的正弦值。 |
sqrt(x) |
返回数字的平方根。 |
subtract(x, y) |
x - y 的别名。 |
tan(x) |
计算 x 的正切值。 |
trunc(x) |
截断数字。 |
xor(x, y) |
按位异或。 |
描述 |
绝对值。如果x 是列名,括号是可选的。 |
示例 |
@(-17.4) |
结果 |
17.4 |
别名 |
abs |
描述 |
绝对值。 |
示例 |
abs(-17.4) |
结果 |
17.4 |
别名 |
@ |
描述 |
计算x 的反余弦值。 |
示例 |
acos(0.5) |
结果 |
1.0471975511965976 |
描述 |
x + y 的别名。 |
示例 |
add(2, 3) |
Result |
5 |
描述 |
计算x 的反正弦值。 |
示例 |
asin(0.5) |
结果 |
0.5235987755982989 |
描述 |
计算x 的反正切值。 |
示例 |
atan(0.5) |
结果 |
0.4636476090008061 |
描述 |
计算反正切值 (y, x)。 |
示例 |
atan2(0.5, 0.5) |
结果 |
0.7853981633974483 |
描述 |
返回设置的位数。 |
示例 |
bit_count(31) |
Result |
5 |
描述 |
返回数字的立方根。 |
示例 |
cbrt(8) |
Result |
2 |
描述 |
将数字向上取整。 |
示例 |
ceil(17.4) |
结果 |
18 |
描述 |
将数字向上取整。ceil 的别名。 |
示例 |
ceiling(17.4) |
结果 |
18 |
描述 |
计算x 的余弦值。 |
示例 |
cos(90) |
结果 |
-0.4480736161291701 |
描述 |
计算x 的余切。 |
示例 |
cot(0.5) |
结果 |
1.830487721712452 |
描述 |
将弧度转换为角度。 |
示例 |
degrees(pi()) |
结果 |
180 |
描述 |
x // y 的别名。 |
示例 |
divide(5, 2) |
Result |
2 |
描述 |
通过向远离零的方向舍入到下一个偶数。 |
示例 |
even(2.9) |
Result |
4 |
描述 |
计算 e ** x 。 |
示例 |
exp(0.693) |
Result |
2 |
描述 |
参见 ! 运算符。计算当前整数及其以下所有整数的乘积。 |
示例 |
factorial(4) |
结果 |
24 |
描述 |
执行整数除法(x // y ),但返回一个DOUBLE 类型的值。 |
示例 |
fdiv(5, 2) |
结果 |
2.0 |
描述 |
将数字向下取整。 |
示例 |
floor(17.4) |
结果 |
17 |
描述 |
计算模值。始终返回一个DOUBLE 类型的值。 |
示例 |
fmod(5, 2) |
结果 |
1.0 |
描述 |
对x - 1 的阶乘进行插值。允许输入分数。 |
示例 |
gamma(5.5) |
结果 |
52.34277778455352 |
描述 |
计算x 和y 的最大公约数。 |
示例 |
gcd(42, 57) |
Result |
3 |
描述 |
计算x 和y 的最大公约数。 |
示例 |
greatest_common_divisor(42, 57) |
Result |
3 |
描述 |
选择最大值。 |
示例 |
greatest(3, 2, 4, 4) |
Result |
4 |
描述 |
如果浮点值是有限的,则返回 true,否则返回 false。 |
示例 |
isfinite(5.5) |
Result |
true |
描述 |
如果浮点值是无限的,则返回 true,否则返回 false。 |
示例 |
isinf('Infinity'::float) |
Result |
true |
描述 |
如果浮点值不是数字,则返回 true,否则返回 false。 |
示例 |
isnan('NaN'::float) |
Result |
true |
描述 |
计算x 和y 的最小公倍数。 |
示例 |
lcm(42, 57) |
结果 |
798 |
描述 |
计算 x 和 y 的最小公倍数。 |
示例 |
least_common_multiple(42, 57) |
结果 |
798 |
描述 |
选择最小的值。 |
示例 |
least(3, 2, 4, 4) |
Result |
2 |
描述 |
计算gamma 函数的对数。 |
示例 |
lgamma(2) |
结果 |
0 |
描述 |
计算x 的自然对数。 |
示例 |
ln(2) |
结果 |
0.693 |
描述 |
计算x 的以10为底的对数。 |
示例 |
log(100) |
Result |
2 |
描述 |
log 的别名。计算 x 的以10为底的对数。 |
示例 |
log10(1000) |
Result |
3 |
描述 |
计算x 的以2为底的对数。 |
示例 |
log2(8) |
Result |
3 |
描述 |
x * y 的别名。 |
示例 |
multiply(2, 3) |
Result |
6 |
描述 |
返回在y 方向上x 之后的下一个浮点值。 |
示例 |
nextafter(1::float, 2::float) |
结果 |
1.0000001 |
描述 |
返回pi的值。 |
示例 |
pi() |
结果 |
3.141592653589793 |
描述 |
计算 x 的 y 次方。 |
示例 |
pow(2, 3) |
结果 |
8 |
描述 |
pow 的别名。计算 x 的 y 次方。 |
示例 |
power(2, 3) |
结果 |
8 |
描述 |
将度数转换为弧度。 |
示例 |
radians(90) |
结果 |
1.5707963267948966 |
描述 |
返回一个在范围 0.0 <= x < 1.0 内的随机数 x 。 |
示例 |
random() |
Result |
various |
描述 |
roundbankers(v, s) 的别名。使用四舍六入五成双规则将数值四舍五入到 s 位小数。允许 s < 0 的值。 |
示例 |
round_even(24.5, 0) |
结果 |
24.0 |
描述 |
四舍五入到s 位小数。允许s < 0 的值。 |
示例 |
round(42.4332, 2) |
结果 |
42.43 |
描述 |
设置用于随机函数的种子。 |
示例 |
setseed(0.42) |
描述 |
返回x 的符号,为-1、0或1。 |
示例 |
sign(-349) |
结果 |
-1 |
描述 |
返回是否设置了符号位。 |
示例 |
signbit(-1.0) |
Result |
true |
描述 |
计算x 的正弦值。 |
示例 |
sin(90) |
结果 |
0.8939966636005579 |
描述 |
返回数字的平方根。 |
示例 |
sqrt(9) |
Result |
3 |
描述 |
x - y 的别名。 |
示例 |
subtract(2, 3) |
结果 |
-1 |
描述 |
计算x 的正切值。 |
示例 |
tan(90) |
结果 |
-1.995200412208242 |
描述 |
截断数字。 |
示例 |
trunc(17.4) |
Result |
17 |
描述 |
按位异或。 |
示例 |
xor(17, 5) |
Result |
20 |