metric_column 相对于 timestamp_column 的非负导数。
这是一个 ClickHouse 特有的窗口函数,不属于标准 SQL。
对于每一行,导数是相对于窗口求值顺序中的前一行计算的,该顺序由窗口的 ORDER BY 子句决定,而非由 timestamp_column 决定。
timestamp_column 参数仅用于测量当前行与前一行之间的时间差,其本身不参与行的排序。
结果为每个 INTERVAL 内指标的变化率,所有负值均被截断为 0。
这对于单调递增的指标(如计数器)非常有用——数值下降通常意味着发生了重置,而非真实的负变化率。
语法
metric_column— 需要计算导数的列。(U)Int* 或 Float*。timestamp_column— 用于测量窗口顺序中当前行与前一行之间时间差的列。该列不参与行的排序,排序由窗口的ORDER BY完成,通常应使用同一列。DateTime 或 DateTime64。INTERVAL X UNITS— 可选。结果换算的目标时间单位,默认为INTERVAL 1 SECOND。仅支持固定长度单位(NANOSECOND、MICROSECOND、MILLISECOND、SECOND、MINUTE、HOUR、DAY、WEEK);可变长度单位(MONTH、QUARTER、YEAR)会抛出异常。
- 第一行返回
0; - 与前一行的时间差为非正值的行(即 ,降序排列或存在重复时间戳时会出现此情况)返回
0; - 其余情况返回 。
0。返回类型为 Float64。
示例
以下示例计算传感器读数的每秒变化率。
注意,第三行的值从 110 下降至 105,因此其导数被截断为 0。
Query
Query
Response