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

KQL中make-series算子报错:无法解析monthlyInterval标量表达式

解决KQL make-series动态步长报错问题

问题根源

你遇到的报错是因为make-series的step参数要求是全局标量值(整个查询中固定的单一值),但你尝试用每行数据计算出的monthlyInterval/yearlyInterval列作为步长,这不符合语法要求。另外,手动计算月/年天数差是多余的——KQL原生支持1month、1year这类时间单位,会自动处理不同月份天数、闰年等场景。

修正后的代码

let selectedFrequency = "{Frequency}";
// 将选择的频率转换为对应的时间步长标量
let timeStep = case(
    selectedFrequency == "Daily", 1d,
    selectedFrequency == "Weekly", 7d,
    selectedFrequency == "Monthly", 1month,
    selectedFrequency == "Yearly", 1year,
    1d // 默认步长
);
pageViews
| where name in ({URL})
| project name, timestamp
| make-series CountByPageName=count() default=0 on timestamp from {TimeRange:start} to {TimeRange:end} step timeStep by name
| render linechart

关键修改说明

  1. 全局标量步长:新增timeStep变量,通过case将选择的频率映射为KQL原生时间单位标量,确保make-series的step参数是全局固定值,符合语法要求。
  2. 原生时间单位:直接使用1month、1year作为步长,KQL会自动处理不同月份的天数差异(如2月的28/29天、大月31天等),无需手动计算天数差。
  3. 逻辑简化:去掉了不必要的extend计算,让查询更简洁高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 04:17:47