You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在KQL的summarize子句中复用countif()的计算结果?

KQL中summarize子句避免重复计算的方法及问题原因

你不需要重复编写countif(Location == "US")这类语句,有简单的方法可以避免重复计算,同时解决你遇到的报错问题。

可行的优化写法

先通过summarize计算出基础的聚合值,再用extend子句基于这些值计算百分比:

SigninLogs
| project TimeGenerated, CorrelationId, Location
| summarize
    US = countif(Location == "US"),
    Outside_US = countif(Location != "US"),
    Total = count()
    by bin(TimeGenerated, 1h)
| extend
    USPercentage = round(100.0 * US / Total, 2),
    NonUSPercentage = round(100.0 * Outside_US / Total, 2)

为什么直接引用会报错

KQL的summarize运算符对所有聚合列的计算是并行独立的,同一个summarize块内的各个聚合表达式之间没有依赖关系,也不能互相引用彼此的计算结果。

你尝试在同一个summarize里用US来计算百分比时,US本身是这个块里正在计算的列,此时它的结果还未生成,自然无法被其他表达式解析,所以会出现Failed to resolve scalar expression named 'US'的错误。

内容的提问来源于stack exchange,提问作者Razi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 05:46:02