这篇说说同环比函数的基础语法和示例。
| 函数名称 | 语句 | 含义 |
| compare 函数 | 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 变化趋势对应的时间列 |
一、语法
·对比当前时间周期内 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 compare FROM ( SELECT COUNT(*) AS PV ))
五、示例2:计算今天每5分钟网站访问量变化趋势与昨天同时间段的对比
选择查询和分析的时间范围为今天,并执行如下查询和分析语句,其中86400表示当前时间减去86400秒(1天)。
·检索分析语句
* | SELECT compare[1] AS today, compare[2] AS yesterday, time FROM ( SELECT compare(PV, 86400, time) AS compare, time FROM ( SELECT count(*) AS PV, histogram(__TIMESTAMP__, INTERVAL 5 MINUTE) AS time GROUP BY time ) )
·查询结果