问题描述
我有一个困扰我的问题,尽管我认为解决方案必须非常简单。 我必须使用Kusto查询语言为我的Azure Analytics日志分析器指标构建查询。
我想使此脚本适用于最新的应用程序版本和第二最新的应用程序版本。
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