Azure data explorer Kusto |添加列以显示占总数的百分比
我见过其他几个类似的问题,但每个问题都略有不同,没有一个答案是我能够适应我的情况。我有一张这样的桌子:Azure data explorer Kusto |添加列以显示占总数的百分比,azure-data-explorer,kql,Azure Data Explorer,Kql,我见过其他几个类似的问题,但每个问题都略有不同,没有一个答案是我能够适应我的情况。我有一张这样的桌子: let T = datatable(Val1:string, Val2:string, Val3:bool) [ '', 'false', 'false', 'Yes', 'false', 'true', 'No', 'false', 'false', 'Yes', 'false', 'false' ]
let T =
datatable(Val1:string, Val2:string, Val3:bool)
[
'', 'false', 'false',
'Yes', 'false', 'true',
'No', 'false', 'false',
'Yes', 'false', 'false'
]
;
| summarize Total = sum(Count), Count
我尝试过这样做:
T
| where Val3 == "false"
| summarize Count = count() by Val1, Val2
| let Total = sum(Count)
| extend Percentage = round(100.0 * Count/Total, 0)
出现识别错误。Token:let“”,我已经尝试了许多类似的变体:
T
| where Val3 == "false"
| summarize Count = count() by Val1, Val2
| extend Total = sum(Count)
| extend Percentage = round(100.0 * Count/Total, 0)
它抛出错误“无法在当前上下文中调用函数'sum'”
。如果我将extend Total
更改为summary Total
,则该行可以工作,但它会抛出一个错误,即无法识别下一行的计数。如果我在汇总行添加Count,如下所示:
let T =
datatable(Val1:string, Val2:string, Val3:bool)
[
'', 'false', 'false',
'Yes', 'false', 'true',
'No', 'false', 'false',
'Yes', 'false', 'false'
]
;
| summarize Total = sum(Count), Count
然后我得到一个错误“汇总后使用了无效的聚合函数”
。
这是我想要的输出:
看起来这比应该的困难多了。我遗漏了什么?您可以使用子查询计算百分比,以获得总数,并将其传递到
toscalar()
。在下面的示例中,我还使用了as
操作符
:toscalar()
操作员:作为
datatable(Val1:string, Val2:string, Val3:bool)
[
'', 'false', 'false',
'Yes', 'false', 'true',
'No', 'false', 'false',
'Yes', 'false', 'false'
]
| where Val3 == "false"
| summarize Count = count() by Val1, Val2
| as T
| extend Percentage = round(100.0 * Count / toscalar(T | summarize sum(Count)), 2)