繁体   English   中英

如何在 Kusto 查询语言中使用“!contains”的 where 子句中使用存储在“let”中的 s skalar

[英]How to use s skalar stored in 'let' in a where clause with '!contains' in Kusto Query Language

我有一个困扰我的问题,尽管我认为解决方案必须非常简单。 我必须使用 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 技能。

最好的问候,特立独行

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

无论如何,如果你想找到前 2 个项目,有一种更有效的方法来做到这一点:

customEvents
| where client_OS contains "Android"
| top 2 by application_Version desc

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM