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

如何用KQL对动态列按前缀求和生成2xxCount与5xxCount?

动态状态码列的KQL求和实现

针对动态生成的状态码列(列名以状态码命名,如201、202、503等),可以通过KQL的动态数据处理函数实现按前缀求和的需求,具体代码如下:

// 假设原数据集表名为StatusData
StatusData
| extend StatusBag = pack_all()
| extend StatusBag = bag_remove_keys(StatusBag, dynamic(["Service"]))
| extend 2xxCount = toint(sum(bag_values(bag_filter(StatusBag, (k, v) => startswith(k, "2")))))
| extend 5xxCount = toint(sum(bag_values(bag_filter(StatusBag, (k, v) => startswith(k, "5")))))
| project-away StatusBag

代码说明

  • pack_all():将当前行的所有列转换为一个动态属性包,键为列名,值为对应单元格的数据。
  • bag_remove_keys():从属性包中移除Service字段,仅保留状态码相关的键值对。
  • bag_filter():筛选出属性包中键(即状态码列名)以指定前缀开头的条目,配合bag_values()提取对应数值后求和,得到目标统计列。
  • project-away:清理中间生成的StatusBag列,保留原状态码列和新增的统计列。

该方案无需提前指定具体状态码列,可自动适配任意以2或5开头的动态状态码列,满足不同场景下的统计需求。

内容的提问来源于stack exchange,提问作者Jerald Baker

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 04:15:04