有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
本文介绍同环比函数的基础语法和示例。
函数名称
语句
含义
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 ratio
FROM (
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
)
)
查询结果