根据计算的失败百分比创建列

问题描述

这是示例数据和我的查询。如何计算失败百分比并根据失败百分比创建新的列值?

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.")

所需的输出在下面。

Desired output

解决方法

您可以尝试这样的事情:

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                          |

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...