本文介绍同环比函数的基础语法和示例。
函数名称 | 语句 | 含义 |
compare(x,n) | 对比当前时间周期内 x 的值与 n 秒之前时间周期内的值。 | |
| compare(x,n1,n2,n3...) | 对比当前时间周期内 x 的值与 n1 秒、n2 秒、n3 秒之前时间周期内的值。 |
| compare(x,n,time) | 对比当前时间周期内 x 随时间的变化趋势与 n 秒之前时间周期内的变化趋势,time 为 x 变化趋势对应的时间列 |
| compare(x,n1,n2,n3...,time) | 对比当前时间周期内 x 随时间的变化趋势与 n1 秒、n2 秒、n3 秒之前时间周期内的变化趋势,time 为 x 变化趋势对应的时间列 |
compare 函数
compare 函数用于对比当前时间周期内的计算结果与 n 秒之前时间周期内的计算结果。
语法
对比当前时间周期内 x 的值与 n 秒之前时间周期内的值。
compare(x, n)
对比当前时间周期内 x 的值与 n1 秒、n2 秒、n3 秒之前时间周期内的值。
compare(x, n1, n2, n3...)
对比当前时间周期内 x 随时间的变化趋势与 n 秒之前时间周期内的变化趋势,time 为 x 变化趋势对应的时间列。
compare(x,n,time)
对比当前时间周期内 x 随时间的变化趋势与 n1 秒、n2 秒、n3 秒之前时间周期内的变化趋势,time 为 x 变化趋势对应的时间列。
compare(x,n1,n2,n3...,time)
参数说明
参数 | 说明 |
x | 参数值为 double 类型或 long 类型。 |
n | 时间窗口,单位为秒。例如3600(1小时)、86400(1天)、604800(1周)、31622400(1年)。 |
time | 对比 x 随时间变化趋势时需填写该参数,time 为 x 变化趋势对应的时间列,需为 timestamp 类型 。 |
返回值类型
JSON 数组。格式为
[当前计算结果,n 秒前的计算结果,当前计算结果与 n 秒前计算结果的比值]
。示例
示例1:计算当前1小时和昨天同时段的网站访问量比值
选择查询和分析的时间范围为近1小时,并执行如下查询和分析语句,其中86400表示当前时间减去86400秒(1天)。
检索分析语句
* | SELECT compare(PV, 86400) FROM (SELECT count(*) AS PV)
查询结果
[1860,1656,1.1231884057971016]
1860 表示当前1小时的网站访问量。
1656 表示昨天同时段的网站访问量。
1.1231884057971016 表示当前1小时与昨天同时段的网站访问量比值。
如需查询结果为分列显示,可修改语句为:
* |SELECT compare[1] AS today, compare[2] AS yesterday, compare[3] AS ratioFROM (SELECT compare(PV, 86400) AS compareFROM (SELECT COUNT(*) AS PV))
示例2:计算今天每5分钟网站访问量变化趋势与昨天同时间段的对比
选择查询和分析的时间范围为今天,并执行如下查询和分析语句,其中86400表示当前时间减去86400秒(1天)。
检索分析语句
* |SELECTcompare[1] AS today, compare[2] AS yesterday, timeFROM(SELECTcompare(PV, 86400, time) AS compare, timeFROM(SELECTcount(*) AS PV, histogram(__TIMESTAMP__, INTERVAL 5 MINUTE) AS timeGROUP BYtime))
查询结果