series_lag_fl()
对序列应用滞后。
函数 series_lag_fl()
是一个用户定义的函数 (UDF),它接受一个包含动态数值数组的表达式作为输入,并将其向后移动。 它通常用于移动时序,以测试模式是新模式还是与历史数据匹配。
语法
series_lag_fl(
y_series,
offset)
详细了解语法约定。
参数
客户 | 类型 | 必需 | 说明 |
---|---|---|---|
y_series | dynamic |
✔️ | 数值的数组单元。 |
offset | int |
✔️ | 一个整数,指定箱中所需的偏移。 |
函数定义
可以通过将函数的代码嵌入为查询定义的函数,或将其创建为数据库中的存储函数来定义函数,如下所示:
使用以下 let 语句定义函数。 不需要任何权限。
let series_lag_fl = (series:dynamic, offset:int)
{
let lag_f = toscalar(range x from 1 to offset+1 step 1
| project y=iff(x == offset+1, 1, 0)
| summarize lag_filter = make_list(y));
fir(series, lag_f, false)
};
// Write your query to use the function here.
示例
若要使用查询定义的函数,请在嵌入的函数定义后调用它。
let series_lag_fl = (series:dynamic, offset:int)
{
let lag_f = toscalar(range x from 1 to offset+1 step 1
| project y=iff(x == offset+1, 1, 0)
| summarize lag_filter = make_list(y));
fir(series, lag_f, false)
};
let dt = 1h;
let time_shift = 1d;
let bins_shift = toint(time_shift/dt);
demo_make_series1
| make-series num=count() on TimeStamp step dt by OsVer
| extend num_shifted=series_lag_fl(num, bins_shift)
| render timechart
输出