有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
本文介绍数学计算函数的语法及示例。
日志服务(Cloud Log Service,CLS)日志分析功能支持对于以 int、long、double 为类型的字段通过数学统计函数和数学计算函数进行日志分析。
说明
数学计算函数支持运算符+-*/%
以下函数中的 x、y 可以为数字、日志字段或计算结果为数字的表达式

基本语法

函数名称
说明

abs
(x)
计算数字的绝对值。

cbrt
(x)
计算数字的立方根。

sqrt
(x)
计算数字的平方根。

cosine_similarity
(x,y)
计算向量 x 和 y 之间的余弦相似度。 例如* | SELECT cosine_similarity(MAP(ARRAY['x','y'], ARRAY[1.0,0.0]), MAP(ARRAY['x','y'], ARRAY[0.0,1.0]))  返回0。

degrees
(x)
将弧度转换为度。

radians
(x)
将度转换为弧度。

e
()
计算数字的自然对数。

exp
(x)
返回自然对数的指数。

ln
(x)
计算数字的自然对数。

log2
(x)
计算以2为底的对数。

log10
(x)
计算以10为底的对数。

log
(x,b)
计算以 b 为底的对数。

pi
()
返回包含14个小数位的 π 值。

pow
(x,b)
计算数字的 b 次幂。

rand
()
返回随机数。

random
(0,n)
返回[0,n)之间的随机数。

round
(x)
返回四舍五入后的取值。

round
(x, N)
保留数字的 N 位小数。

floor
(x)
向下取整数。

ceiling(x)

向上取整数。

truncate
(x)
截断数字的小数部分。

acos
(x)
计算数字的反余弦。

asin
(x)
计算数字的反正弦。

atan
(x)
计算数字的反正切。

atan2
(y,x)
计算两个数字相除的结果的反正切。

cos
(x)
计算数字的余弦。

sin
(x)
计算数字的正弦。

cosh
(x)
计算数字的双曲余弦。

tan
(x)
计算数字的正切。

tanh
(x)
计算数字的双曲正切。

infinity
()
返回正无穷的数值。

is_nan
(x)
判断目标值是否为 NaN(Not a Number)。

nan
()
返回一个 NaN 值(Not a Number)。

mod
(x, y)
用于计算 x 与 y 相除的余数。

sign
(x)
返回 x 的符号,通过1、0、-1表示。

width_bucket
(x, bound1, bound2, n)
将一段数值(bound1 - bound2)划分成大小相同的 n 个 Bucket,返回 x 所属的 Bucket。
例如* | select timeCost,width_bucket(timeCost,10,1000,5)

width_bucket
(x, bins)
使用数组(bins)指定 Bucket 的范围,返回 x 所属的 Bucket。
例如* | select timeCost,width_bucket(timeCost,array[10,100,1000])

to_base
(x, radix)
根据 BASE 编码将 x 转为 radix 进制的字符串。

from_base(x, radix)

根据 BASE 编码将字符串 string 转为 radix 进制的数字。

示例

同比今天和昨天的访问 PV,并使用百分数表示。查询和分析语句如下:
* | SELECT diff [1] AS today, round((diff [3] -1.0) * 100, 2) AS growth FROM (SELECT compare(pv, 86400) as diff FROM (SELECT COUNT(*) as pv FROM log))