本文介绍日志服务支持的同比与环比函数语法及常见场景的使用示例。
说明
'time'
代表字符串,time
或 "time"
代表字段名或列名。函数名称 | 语法 | 说明 |
---|---|---|
COMPARE(KEY, n) | 对比当前时间范围内的计算结果与 n 秒之前时间范围内的计算结果。 | |
COMPARE(KEY, n1, n2, n3...) | 对比当前时间范围内的计算结果与 n1、 n2、n3 秒之前时间范围内的计算结果。 | |
TS_COMPARE(KEY, n) | 对比当前时间范围内的计算结果与 n 秒之前时间范围内的计算结果。 | |
TS_COMPARE(KEY, n1, n2, n3...) | 对比当前时间范围内的计算结果与 n1、 n2、n3 秒之前时间范围内的计算结果。 |
COMPARE 函数用于对比当前时间范围内的计算结果与 n 秒之前时间范围内的计算结果。
语法格式
对比当前时间范围内的计算结果与 n 秒之前时间范围内的计算结果。
COMPARE(KEY, n)
对比当前时间范围内的计算结果与 n1、n2、n3 秒之前时间范围内的计算结果。
COMPARE(KEY, n1, n2, n3...)
参数说明
参数 | 说明 |
---|---|
KEY | 字段、表达式,其值为 Double 类型或 Long 类型。 |
n | 时间窗口,单位为秒。例如 86400(1天)。 |
返回值说明
返回值为 Array 类型,格式为[当前计算结果, n 秒前的计算结果, 当前计算结果与 n 秒前计算结果的比值]
。
检索和分析语句
选择检索和分析的时间范围为1小时(整点时间),并执行如下检索和分析语句。
* |SELECT COMPARE(PV, 86400) FROM ( SELECT COUNT(*) AS PV )
检索和分析结果
检索和分析语句
选择检索和分析的时间范围为 1小时(整点时间),并执行如下检索和分析语句。 其中,diff 为 COMPARE 函数计算结果(数组格式)的别名,diff [1] 表示获取数组中的第一个值。
* |SELECT diff [1] AS today, diff [2] AS yesterday, diff [3] AS ratio FROM ( SELECT COMPARE(PV, 86400) AS diff FROM ( SELECT COUNT(*) AS PV ) )
检索和分析结果
TS_COMPARE 函数用于对比当前时间范围内的计算结果与 n 秒之前时间范围内的计算结果。
语法格式
对比当前时间范围内的计算结果与 n 秒之前时间范围内的计算结果。
TS_COMPARE(KEY, n)
对比当前时间范围内的计算结果与 n1、n2、n3 秒之前时间范围内的计算结果。
TS_COMPARE(KEY, n1, n2, n3...)
参数说明
参数 | 说明 |
---|---|
x | 字段、表达式,其值为 Double 类型或 Long 类型。 |
n | 时间窗口,单位为秒。例如 86400(1天)。 |
返回值说明
返回值为 Array 类型。格式为[当前计算结果, n 秒前的计算结果, 当前计算结果与 n 秒前计算结果的比值, n 秒前的 UNIX时间戳]
。
检索和分析语句
选择检索和分析的时间范围为今天(整点时间),并执行如下检索和分析语句。
*|SELECT time, TS_COMPARE(PV, 86400, 172800) AS diff FROM ( SELECT COUNT(*) AS PV, DATE_TRUNC('hour', __time__) AS time GROUP BY time ) GROUP BY time ORDER BY time
检索和分析结果
检索和分析语句
* |SELECT time, diff [1] AS day1, diff [2] AS day2, diff [3] AS day3, diff [4] AS ratio1, diff [5] AS ratio2 FROM ( SELECT time, TS_COMPARE(PV, 86400, 172800) AS diff FROM ( SELECT COUNT(*) AS PV, DATE_TRUNC('hour', __time__) AS time GROUP BY time ) GROUP BY time ORDER BY time )
检索和分析结果