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

如何在KQL中将结果行转列并生成汇总统计?

问题描述

现有如下KQL数据定义与初始查询:

let T = datatable(OperationName:string, Result:string)
[
   "Method1" , "success",
   "Method1" , "failure",
   "Method1" , "success",
   "Method1" , "success",
   "Method1" , "success",
   "Method1" , "failure",
   "Method2" , "success",
   "Method2" , "failure",
   "Method2" , "failure",
];
T | summarize  Total = count() by OperationName, Result

执行上述查询后得到结果:

OperationNameResultTotal
Method1success4
Method1failure2
Method2success1
Method2failure2

需要编写KQL查询,生成如下格式的结果:

OperationNamesuccessfailuretotal
Method1426
Method2123

需求说明:将结果类型(success/failure)从行转换为列,对应统计值填入列中,并添加total列(为success与failure的总和)。

解决方案

可以使用KQL的pivot运算符实现行转列,再通过extend计算总和,具体查询如下:

let T = datatable(OperationName:string, Result:string)
[
   "Method1" , "success",
   "Method1" , "failure",
   "Method1" , "success",
   "Method1" , "success",
   "Method1" , "success",
   "Method1" , "failure",
   "Method2" , "success",
   "Method2" , "failure",
   "Method2" , "failure",
];
T
| summarize count() by OperationName, Result
| pivot Result, sum(count_)
| extend total = success + failure

代码说明:

  • summarize count() by OperationName, Result:按操作名称和结果类型统计对应数量,和初始查询逻辑一致。
  • pivot Result, sum(count_):将Result列的不同取值(success、failure)转为独立列,用sum(count_)填充各列的统计数值。
  • extend total = success + failure:新增total列,计算每个操作的成功与失败数量之和。

执行后得到的结果如下:

OperationNamesuccessfailuretotal
Method1426
Method2123

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 00:13:22