我无法正确地将时间序列数据与另一个时间序列相除。
我从TestTable
获取数据,结果显示为以下视图:
TagId, sdata
8862, [0,0,0,0,2,2,2,3,4]
6304, [0,0,0,0,2,2,2,3,2]
我想将tagId 8862
的sdata系列除以6304
的系列
我希望得到以下结果:
[NaN,NaN,NaN,NaN,1,1,1,1,2]
当我尝试下面的代码时,我的ddata
结果中只有两个空的S2
行
TestTable
| where TagId in (8862,6304)
| make-series sdata = avg(todouble(Value)) default=0 on TimeStamp in range (datetime(2019-06-27), datetime(2019-06-29), 1m) by TagId
| as S1;
S1 | project ddata = series_divide(sdata[0].['sdata'], sdata[1].['sdata'])
| as S2
我在做什么错了?
答案 0 :(得分:2)
series_divide()
的两个参数不能来自数据集中的两个单独的行。
这是一个如何实现此目的的示例(基于您的实际用例的有限且可能不能完全代表的情况,如您的问题所示)
let T =
datatable(tag_id:long, sdata:dynamic)
[
8862, dynamic([0,0,0,0,2,2,2,3,4]),
6304, dynamic([0,0,0,0,2,2,2,3,2]),
]
;
let get_value_from_T = (_tag_id:long)
{
toscalar(
T
| where tag_id == _tag_id
| take 1
| project sdata
)
};
print sdata_1 = get_value_from_T(8862), sdata_2 = get_value_from_T(6304)
| extend result = series_divide(sdata_1, sdata_2)
返回:
|sdata_1 | sdata_2 | result |
|--------------------|---------------------|---------------------------------------------|
|[0,0,0,0,2,2,2,3,4] | [0,0,0,0,2,2,2,3,2] |["NaN","NaN","NaN","NaN",1.0,1.0,1.0,1.0,2.0]|