计算 28 天内每天每个命令的成功率 [Azure Data Explorer]

Calculate the success rate for each Command for each day for 28 days [Azure Data Explorer]

我有架构数据

命令成功时间戳
Cmd1 0 2020-12-01 1:00:00.00
Cmd2 1 2020-12-02 2:00:00.00
Cmd1 1 2020-12-01 3:00:00.00
Cmd2 1 2020-12-02 4:00:00.00

此数据跨越许多天,每天都有许多记录。 我想计算每个 cmd 每天的成功率,return 作为 table 与架构: 日期、命令、成功率

我想用bin()按天拆分数据,但我不确定如何使用bin()计算成功率。 我能想到的最好的方法是单独计算每一天(比如 28 天)的成功率,然后 union() 这些行每天一起计算(28 union() 调用)。这似乎很老套。

这样做的目的是创建一个 table,我可以在其中使用 stdev() 和 avg() 来查找命令异常的成功率。

能否请您告诉我如何最好地计算 28 天内每天每个命令的成功率 return table?

你可以尝试这样的事情:

datatable(command:string, is_success:int, timestamp:datetime)
[
    "Cmd1", 0, datetime(2020-12-01 1:00:00.00),
    "Cmd2", 1, datetime(2020-12-02 2:00:00.00),
    "Cmd1", 1, datetime(2020-12-01 3:00:00.00),
    "Cmd2", 1, datetime(2020-12-02 4:00:00.00),
]
| summarize success_rate = 100.0 * countif(is_success == 1) / count() 
         by command, day = startofday(timestamp)
command day success_rate
Cmd1 2020-12-01 00:00:00.0000000 50
Cmd2 2020-12-02 00:00:00.0000000 100