问题描述
这是示例数据和我的查询。如何计算失败百分比并根据失败百分比创建新的列值?
let M = datatable (Run_Date:datetime,Job_Name:string,Job_Status:string,Count:int )
["2020-10-21","Job_A1","Succeeded",10,"2020-10-21","Failed",8,"10/21/2020","Job_B2",21,"Job_C3","Job_D4",136,"Job_E5",187,4
];
M
| summarize count() by Job_Name,Count,summary = strcat(Job_Name," Failed "," out of "," times.")
所需的输出在下面。
解决方法
您可以尝试这样的事情:
datatable (Run_Date:datetime,Job_Name:string,Job_Status:string,Count:int )
[
"2020-10-21","Job_A1","Succeeded",10,"2020-10-21","Failed",8,"10/21/2020","Job_B2",21,"Job_C3","Job_D4",136,"Job_E5",187,4
]
| summarize failures = sumif(Count,Job_Status == "Failed"),total = sum(Count) by Job_Name,Run_Date
| project Job_Name,failure_rate = round(100.0 * failures / total,2),Summary = strcat(Job_Name," failed ",failures," out of ",total," times.")
| extend ['Alert if failure rate > 40%'] = iff(failure_rate > 40,"Yes","No")
--->
| Job_Name | failure_rate | Summary | Alert if failure rate > 40% |
|----------|--------------|-----------------------------------|-----------------------------|
| Job_A1 | 44.44 | Job_A1 failed 8 out of 18 times. | Yes |
| Job_B2 | 0 | Job_B2 failed 0 out of 21 times. | No |
| Job_C3 | 0 | Job_C3 failed 0 out of 21 times. | No |
| Job_D4 | 0 | Job_D4 failed 0 out of 136 times. | No |
| Job_E5 | 2.09 | Job_E5 failed 4 out of 191 times. | No |