【发布时间】:2020-12-30 21:50:59
【问题描述】:
我还看到了其他几个与此类似的问题,但每个问题都略有不同,并且没有一个提供我能够适应我的情况的答案。我有一张这样的桌子:
let T =
datatable(Val1:string, Val2:string, Val3:bool)
[
'', 'false', 'false',
'Yes', 'false', 'true',
'No', 'false', 'false',
'Yes', 'false', 'false'
]
;
我只想得到 Val3 为假的结果,按 Val1 和 Val2 汇总计数,然后扩展一列以显示每一行的整体百分比。我试过这样做:
T
| where Val3 == "false"
| summarize Count = count() by Val1, Val2
| let Total = sum(Count)
| extend Percentage = round(100.0 * Count/Total, 0)
这会引发错误"A recognition error occurred. Token: let" 我已经尝试了许多变体,例如:
T
| where Val3 == "false"
| summarize Count = count() by Val1, Val2
| extend Total = sum(Count)
| extend Percentage = round(100.0 * Count/Total, 0)
这会引发错误"Function 'sum' cannot be invoked in current context"。如果我将extend Total 更改为summarize Total,那么该行可以工作,但它会在下一行引发关于无法识别 Count 的错误。如果我像这样在汇总行上添加计数:
| summarize Total = sum(Count), Count
然后我收到错误"Non valid aggregation function is used after summarize"。
这是我想要的输出:
看起来这比应该做的要困难得多。我错过了什么?
【问题讨论】: