如何在Azure Data Explorer中计算行间累计差值并展示
在Azure Data Explorer中计算行间累计差值
需求说明
计算每行与上一行Value字段的差值,第一行的差值设为0,生成Cumulative_difference列。
示例数据
ID | NAME | Value ---+---------+------------- 1 | ABC | 1987698.987 2 | DEF | 1987870.987 3 | GHI | 1987990.987 4 | JKL | 1988200.987
解决方案
使用Azure Data Explorer内置的prev()函数获取上一行的Value值,结合iif()处理第一行的特殊情况,计算差值并取整(匹配示例结果的整数格式)。
对应的Kusto查询语句如下:
your_table_name | order by ID asc | extend Cumulative_difference = iif(prev(ID) is null, 0, round(Value - prev(Value)))
语句说明
order by ID asc:确保数据按ID顺序排列,保证差值计算的逻辑正确性。prev(Value):提取当前行的上一行Value数值。iif(prev(ID) is null, 0, round(Value - prev(Value))):判断是否为第一行(上一行ID不存在),是则差值设为0,否则计算当前行与上一行的Value差值并取整。
执行结果
ID | NAME | Value | Cumulative_difference ---+-------+-------------+---------------------- 1 | ABC | 1987698.987 | 0 2 | DEF | 1987870.987 | 172 3 | GHI | 1987990.987 | 120 4 | JKL | 1988200.987 | 210
内容的提问来源于stack exchange,提问作者Kiran
相关产品推荐
相关产品推荐

