0

我有时间(t 列)和值(v 列)的数据。我想创建一个新列,称为 p,它是从 t=0 到当前行的 t 值的所有 v 的乘积。row_cumsum() 可以为添加执行此操作,但我需要一个产品。

我尝试使用 extend = v∗(,1,1),但 kusto 无法识别 prev() 中的 p 列,因为它正在创建中。

如果输入是:

数据表(t:int,v:int)

            1, 1
            2, 1
            3, 2
            4, 3
            5, 3
            6, 2

我希望输出为:

数据表(t:int,v:int,p:int)

            1, 1, 1
            2, 1, 1
            3, 2, 2
            4, 3, 6
            5, 3, 18
            6, 2, 36
4

1 回答 1

2

您可以利用 log10() 和 row_cumsum() (累积和):

datatable(t:int, v:int)
[
            1, 1,
            2, 1,
            3, 2,
            4, 3,
            5, 3,
            6, 2,
]
| order by t asc
| extend l = log10(v)
| extend cumsum = row_cumsum(l)
| project t, v, p=exp10(cumsum)
于 2019-09-11T19:45:44.600 回答