0

我有一个困扰我的问题,即使我认为解决方案必须非常简单。我必须使用 Kusto 查询语言为我的 Azure Analytics 日志分析器指标构建一个查询。

我想让这个脚本适用于最新的应用程序版本和第二个最新的应用程序版本。

这是获取最新应用程序版本作为 skalar 的查询代码。

customEvents
| where client_OS contains "Android"
| summarize max(application_Version)

现在我的理解是,我可以将它存储在一个 let 中,然后使用它来获得第二个最新的应用程序版本,如下所示:

let latestVersion = customEvents
| where client_OS contains "Android"
| summarize max(application_Version);
customEvents
| where client_OS contains "Android" and application_Version !contains latestVersion
|summarize max(application_Version)

但不幸的是,编译器不允许我使用带有 !contains 的 skalar。我必须使用字符串。有什么办法可以让我用它来制作字符串,所以我可以使用它吗?或者你有没有其他好方法从 application_Version 列中检索第二高的值?我根据我在 SQL 中的操作方式创建了它,但 Kusto 似乎有点不同。

我希望你能帮助我解决这个问题并启发我并提高我的 Kusto 技能。

最好的问候,特立独行

4

1 回答 1

2

latestVersion不是标量。要使其成为标量,您必须用toscalar(...).

无论如何,如果您想找到前 2 项,有一种更有效的方法:

customEvents
| where client_OS contains "Android"
| top 2 by application_Version desc
于 2020-10-02T13:21:45.460 回答