Kusto 查询:如何按列汇总,然后检查某些记录是否在组中

Kusto query: How to summarize by column(s), then check if certain records are in the group

我对 Kusto 还很陌生,需要在 Log analytics 中查询某些记录。

问题:需要按列ActivityId进行汇总,然后检查RunbookNames(另一个列名)的列表是否在组内。我想要所有具有 Foo 和 Bar 的 activityid。如果它不包含两者,则它不满足标准。

类似于 SQL 查询的东西,我们有 GROUP BY then HAVING 子句。

有什么想法吗?

示例数据:

ActivityId 手册名称 结果
5271D9E9 状态 2,状态 1
5271D9E9 状态 2,状态 1
5271D9E9 状态 2,状态 3
394B044 福伊 状态 2,状态 1
394B044 杜伊 状态 2,状态 1
D94321B 杜伊 状态 2,状态 1
9E4371A 状态 2,状态 1

预期结果

ActivityId 手册名称 结果
5271D9E9 状态 2,状态 1
5271D9E9 状态 2,状态 1
5271D9E9 状态 2,状态 3

根据给定的输入和输出,以及您在评论中的说明,以下查询可以为您指明方向。

let RunbookNames = dynamic("Foo", "Bar");
T
| SUMMARIZE r = make_set(RunbookName) by ActivityId
| where array_length(set_intersect(r, RunbookNames)) == array_length(RunbookNames)
| mv-expand RunbookName = r