Azure Application Insights自定义表UploadSuccess占比计算问题求助
解决Kusto计算事件占比的问题
直接给你两种可行的写法:
方法一:单次扫描表完成统计(推荐,效率更高)
只需要一次查询扫描表,同时统计总事件数和成功事件数,再计算占比:
Table | summarize 总事件数 = count(), 成功事件数 = countif(Event == 'UploadSuccess') | extend 成功占比 = (toreal(成功事件数) / 总事件数) * 100
这里用toreal()是因为count返回的是整数类型,直接做除法会得到整数结果,转成实数才能算出精确的百分比。
方法二:用标量变量计算
你的第一种尝试可以通过toscalar()函数把统计结果转成标量值,这样就能直接运算了:
let 成功事件数 = toscalar(Table | where Event == 'UploadSuccess' | summarize count()); let 总事件数 = toscalar(Table | summarize count()); print 成功占比 = (toreal(成功事件数) / 总事件数) * 100
之前的问题是你定义的ActualWork和AllWork都是表对象,不是单个数值,toscalar()可以把单行列的表转换成标量值,这样就能进行数学运算了。
你的第二种尝试里,ActualWork是表类型,不能直接和count()做除法,而且语法上evaluate和summarize的用法也不对,上面两种方法都能解决你的问题。
内容的提问来源于stack exchange,提问作者mejia_david
相关产品推荐
相关产品推荐

