同环比函数

最近更新时间: 2026-03-13 09:03:00

本文介绍同环比函数的基础语法和示例。

函数名称语句含义
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 变化趋势对应的时间列

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
          )
      )
    
  • 查询结果