如何使用KQL添加总计行,汇总各列数值?
在Kusto查询结果中添加总计行
可以通过两种方式实现需求,在分组统计结果的最后一行添加总计行,汇总所有OperationName的成功数、失败数及总数:
方法一:分开统计后合并
先按OperationName统计各方法的数值,再单独计算总计行,最后将两者合并并排序,确保总计行在末尾:
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", ]; // 统计各OperationName的明细数据 let grouped_data = T | summarize success = countif(Result == "success") ,failure = countif(Result == "failure") ,total = count() by OperationName; // 计算总计行 let total_summary = T | summarize success = countif(Result == "success") ,failure = countif(Result == "failure") ,total = count() | extend OperationName = "总计"; // 合并数据并排序,让总计行显示在最后 union grouped_data, total_summary | sort by OperationName asc
方法二:使用with rollup参数(更简洁)
利用Kusto的with rollup汇总功能,自动生成分组的总计行,再将默认的null替换为“总计”:
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 success = countif(Result == "success") ,failure = countif(Result == "failure") ,total = count() by OperationName with rollup // 将汇总行的OperationName字段替换为“总计” | extend OperationName = coalesce(OperationName, "总计")
运行上述任意查询后,结果都会包含各方法的统计数据,以及最后一行的“总计”行,展示所有记录的成功数、失败数和总数总和。
内容的提问来源于stack exchange,提问作者Razi
相关产品推荐
相关产品推荐

