数学操作符

操作符 说明
+
-
*
/ 除(整数相除会截断)
% 取余

数学函数

Presto 提供了十分丰富的数学函数,如下表所示:
函数 语法 说明
abs abs(x) → x
cbrt cbrt(x) → double 返回立方根
ceil ceil(x) 返回比 x 大的最小整数,是ceiling的别名
ceiling ceiling(x) 返回比 x 大的最小整数
cosine_similarity cosine_similarity(x, y) → double 返回两个稀疏向量的余弦相似度
degrees degress(x) -> double 弧度换算成角度
e e()->double 获取欧拉常数
exp exp(x)->double 指数函数
floor floor(x) 获取小于 x 的最大整数
from_base from_base(string, radix) → bigint 获取字面量的值,该值的基数为 radix
inverse_normal_cdf inverse_normal_cdf(mean,sd,p)->double 计算给定正态分布(均值、标准差和累计概率)的累计分布函数的倒数。
ln ln(x)->double 返回自然对数值
log2 log2(x)->double 返回以 2 为底的对数
log10 log10(x)->double 返回以 10 为底的对数
log log(x,b) -> double 返回以 b 为底数的对数
mod mod(n,m) 返回 n/m 的余数
pi pi()->double 返回常数 Pi
pow pow(x,p)->double 计算 x^p 的值,power的别名
power power(x,p)->double 计算 x^p 的值
radians radians(x)->double 将角度换算成弧度
rand rand()->double 获取一个为随机数,返回值范围为[0.0,1.0)。random的别名
random random()->double 获取一个为随机数,返回值范围为[0.0,1.0)。
random random(n) 获取一个为随机数,返回值范围为[0.0,n)。
round round(x) 返回与 x 最接近的整数。
round round(x, d) 返回与 x 最接近的数,精确到小数后 d 位。
sign sign(x) 符号函数,x 如果是整数,则当 x=0,返回0; x>0,返回1; x<0,返回-1。x 如果是浮点数,则当 x 为 NaN 时,返回Nan;当 x 为 +∞ 时,返回1;当x为-∞时,返回-1。
sqrt sqrt(x)->double 平方根函数
to_base to_base(x, radix)->varchar 返回 x 以 radix 为基数的字面量
truncate truncate(x) → double 截取整数部分
width_bucket width_bucket(x, bound1, bound2, n) → bigint 获取 x 在[bound1, bound2]范围内 n 等的分直方图中的 bin 数
width_bucket width_bucket(x, bins) 获取 x 在给定分布的直方图中的 bin 数
acos acos(x)->double 获取 x 的反余弦值,x 为弧度
asin asin(x)->double 获取 x 的反正弦值,x 为弧度
atan atan(x)->double 获取 x 的反正切值,x 为弧度
atan2 atan2(y,x)->double 获取 y/x 的反正切值,x 为弧度
cos cos(x)->double 获取 x 的余弦值,x为弧度
cosh cosh(x)->double 获取 x 的双曲余弦值,x 为弧度
sin sin(x)->double 获取 x 的正弦值,x为弧度
tan tan(x)->double 获取 x 的正切值,x为弧度
tanh tanh(x)->double 获取 x 的双曲正切值,x 为弧度
infinity infinity() → double 获取正无穷常数
is_finite is_finite(x) → boolean 判断 x 是否为有限数值
is_infinite is_infinite(x) → boolean 判断 x 是否为无穷数值
is_nan is_nan(x) → boolean 判断 x 是否不是一个数值类型的变量
nan nan() 获取一个表示NAN(not-a-number)的常数