最近更新时间:2024.04.19 13:54:16
首次发布时间:2024.01.22 17:18:38
本文介绍日志服务支持的数学计算函数语法及常见场景的使用示例。
注意
日志服务产品架构升级,支持更丰富的检索分析功能。
关于 1.0 架构与 2.0 架构的具体说明,请参考日志服务架构升级通知。
说明
在日志服务分析语句(SQL 语句)中,需要使用单引号('')包裹代表字符串的字符,无符号包裹或被双引号("")包裹的字符为字段名或列名。例如'time'
代表字符串,time
或 "time"
代表字段名或列名。
函数名称 | 函数语法 | 说明 |
---|---|---|
ABS(KEY) | 计算目标值的绝对值。 | |
FLOOR(KEY) | 对目标值进行向下取整数。 | |
LOG(KEY) | 计算目标值的自然对数。 | |
LOG10(KEY) | 计算目标值以 10 为底的对数。 | |
POWER(KEY, y) | 计算目标值的 y 次幂。 | |
RAND() | 返回一个随机数。 | |
RANDOM() | 返回 [0,1) 之间的随机数。 | |
RANDOM(0, KEY) | 返回 [0,KEY) 之间的随机数。 | |
ROUND(KEY) | 对目标值进行四舍五入取整数。 | |
ROUND(KEY,n) | 对目标值进行四舍五入,并保留 n 位小数。 | |
SQRT(KEY) | 计算目标值的平方根。 |
ABS 函数用于计算目标值的绝对值。
语法格式
ABS(KEY)
参数说明
参数 | 说明 |
---|---|
KEY | 字段、表达式,其值为Smallint、Integer、Real、Tinyint、Bigint、Double、Decimal类型。 |
返回值说明
返回值与参数值的类型一致。
场景
计算 RespSize
字段值的绝对值。
日志样例
检索和分析语句
* | SELECT abs(RespSize)
检索和分析结果
FLOOR 函数用于对目标值进行向下取整数。
语法格式
FLOOR(KEY)
参数说明
参数 | 说明 |
---|---|
KEY | 字段、表达式,其值为 Tinyint、Smallint、Integer、Real、Bigint、Double、Decimal 类型 。 |
返回值说明
返回比参数值小的最大整数。返回值为 Double 类型。
场景
计算 ReqSize
字段值的平方根,再进行向下取整数。
日志样例
检索和分析语句
* | SELECT FLOOR(SQRT(ReqSize))
检索和分析结果
LOG 函数用于目标值的自然对数。
语法格式
LOG(KEY)
参数说明
参数 | 说明 |
---|---|
KEY | 字段、表达式,其值为 Double 类型。 |
返回值说明
返回值为 Double 类型。
场景
计算 ReqSize
字段值的自然对数。
日志样例
检索和分析语句
* | SELECT LOG(ReqSize)
检索和分析结果
LOG10 函数用于计算目标值以 10 为底的对数。
语法格式
LOG10(KEY)
参数说明
参数 | 说明 |
---|---|
KEY | 字段、表达式,其值为 Double 类型。 |
返回值说明
返回值为 Double 类型。
场景
计算 ReqSize
字段值以 10 为底的对数。
日志样例
检索和分析语句
* | SELECT LOG10(ReqSize)
检索和分析结果
POWER 函数计算目标值的 y 次幂。
语法格式
POWER(KEY, y)
参数说明
参数 | 说明 |
---|---|
KEY | 字段、表达式,其值为 Double 类型。 |
y | 值为 Double 类型。 |
返回值说明
返回值为 Double 类型。
场景
计算 ReqSize
字段值的 3 次幂。
日志样例
检索和分析语句
* | SELECT POWER(ReqSize, 3)
检索和分析结果
RAND 函数用于返回随机数。
语法格式
RAND()
返回值说明
返回值为 Double 类型。
场景
返回一个随机数。
检索和分析语句
* | SELECT RAND()
检索和分析结果
RANDOM 函数用于返回 [0,1) 或 [0,KEY) 之间的随机数。
语法格式
返回 [0,1) 之间的随机数。
RANDOM()
返回 [0,KEY) 之间的随机数。
RANDOM(KEY)
参数说明
参数 | 说明 |
---|---|
KEY | 字段、表达式,参数值为 Tinyint、Smallint、Integer 或 Bigint 类型。 |
返回值说明
返回值类型与参数值的类型一致。
场景
返回 [0,100)
之间的随机数。
检索和分析语句
* | select RANDOM(100)
检索和分析结果
ROUND 函数用于对目标值进行四舍五入。
语法格式
对目标值进行四舍五入取整数。
ROUND(KEY)
对目标值进行四舍五入,并保留 n 位小数。
ROUND(KEY,n)
参数说明
参数 | 说明 |
---|---|
KEY | 字段、表达式,其值为 Tinyint、Smallint、Integer 或 Bigint 类型。 |
n | 数字精度,即小数部分的位数。 |
返回值说明
返回值与参数值的数据类型一致。
场景
计算 ReqSize
字段值的平方根,再进行四舍五入取整数。
日志样例
检索和分析语句
* | SELECT ROUND(SQRT(ReqSize))
检索和分析结果
场景
计算今天与昨天的访问量比值,并保留 4 位小数。
日志样例
检索和分析语句
* |SELECT diff [1] AS today, diff [2] AS yesterday, ROUND(diff [3],4) FROM ( SELECT COMPARE(PV, 86400) AS diff FROM ( SELECT COUNT(*) AS PV ) )
检索和分析结果
SQRT 函数用于计算目标值的平方根。
语法格式
SQRT(KEY)
参数说明
参数 | 说明 |
---|---|
KEY | 字段、表达式,其值为 Double 类型。 |
返回值说明
返回值为 Double 类型。
场景
计算 ReqSize
字段值的平方根。
日志样例
检索和分析语句
* | SELECT SQRT(ReqSize)
检索和分析结果