You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用KQL扩展列,计算当前行ID范围内的Value总和?

实现方法

当然可以实现这个需求,以下是具体的KQL代码和步骤说明:

首先构造示例数据表:

let T = datatable(ID:int, Value:int)
[
    3, 1,
    4, 4,
    5, 5,
    1, 6,
    2, 7,
    0, 3,
    7, 3,
    2, 2
];

方法一:使用mv-apply(逻辑更直观)

T
| mv-apply current_ID = ID, current_Value = Value on (
    // 筛选原表中ID处于[current_ID, current_ID+3]范围内的行
    T
    | where ID between (current_ID .. current_ID + 3)
    // 对符合条件的Value求和
    | summarize Sum = sum(Value)
)
// 调整列名输出最终结果
| project ID = current_ID, Value = current_Value, Sum

方法二:使用自连接

T
// 为每行生成ID范围的上下限
| extend lower_bound = ID, upper_bound = ID + 3
// 自连接原表,匹配所有ID在当前行范围内的记录
| join kind=inner T on $right.ID between ($left.lower_bound .. $left.upper_bound)
// 按当前行的ID和Value分组,计算符合条件的Value总和
| summarize Sum = sum($right.Value) by $left.ID, $left.Value
// 整理列名输出
| project ID = $left_ID, Value = $left_Value, Sum

结果说明

  • 针对ID=3的行,范围是[3,6],原表中符合条件的ID为3、4、5,对应Value之和为1+4+5=10(注:原示例预期的13可能是输入错误,原表无ID=6的记录;若将原表中ID=0误写为ID=6,则总和为1+4+5+3=13)
  • 针对ID=4的行,范围是[4,7],符合条件的ID为4、5、7,对应Value之和为4+5+3=12(原示例预期的15同样可能存在输入错误,若包含ID=6则总和为4+5+3+3=15)

内容的提问来源于stack exchange,提问作者Mckens Jeoy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 02:14:54