求助:如何通过Kusto Query获取最新DateRefresh刷新记录?
获取Kusto中最新刷新日期记录的解决方案
方法一:使用top操作符(最直接)
直接对符合条件的记录按DateRefresh降序排序,取第一条即可得到最新的刷新记录:
cluster('').database('').function | where ServiceName == "My Service" | top 1 by DateRefresh desc | project DateKey, DateRefresh, ServiceOid, ServiceName, ServiceRing, SDL, SDLScore
逻辑:top 1 by DateRefresh desc会将筛选后的记录按刷新日期从新到旧排序,仅保留排名第一的最新记录。
方法二:使用arg_max聚合函数(适合分组场景)
如果后续需要按ServiceName分组获取每个服务的最新记录,这种方法更灵活:
cluster('').database('').function | where ServiceName == "My Service" | summarize arg_max(DateRefresh, *) by ServiceName | project DateKey, DateRefresh, ServiceOid, ServiceName, ServiceRing, SDL, SDLScore
逻辑:arg_max(DateRefresh, *)会在每个ServiceName分组中,找出DateRefresh值最大的那条记录,并保留该记录的所有字段。
原思路的问题说明
你之前尝试直接用DateRefresh == <最大值>的方式过滤,需要先单独查询出最大的DateRefresh值再嵌套使用,写法繁琐且效率不如上述两种方法。上面的方案一步到位,更贴合Kusto的查询逻辑。
内容的提问来源于stack exchange,提问作者VENKATA KIRAN TEJA
相关产品推荐
相关产品推荐

