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

如何用KQL(Kusto)时间序列按时间区间统计活跃条目数量

实现代码

let data=datatable(startTime:datetime, endtime:datetime)
[
datetime(2021-07-07), datetime(2021-07-13),
datetime(2021-07-02), datetime(2021-09-09),
datetime(2021-06-21), datetime(2021-06-21),
datetime(2021-06-21), datetime(2021-07-23),
datetime(2021-07-07), datetime(2021-07-07),
datetime(2021-07-08), datetime(2021-08-11),
datetime(2021-05-23), datetime(2021-08-23),
];
data
// 为每条记录生成其覆盖的所有月份的月初时间序列
| extend CoveredMonths = range(startofmonth(startTime), startofmonth(endtime), 1m)
// 将月份序列展开为独立行,每个覆盖月份对应一行数据
| mv-expand CoveredMonths to typeof(datetime)
// 格式化月份为要求的YYYY-MM格式
| extend Month = format_datetime(CoveredMonths, "yyyy-MM")
// 按月份分组统计活跃条目数
| summarize Count = count() by Month
// 按月份升序排序
| order by Month asc
// 若需要和示例输出完全一致过滤掉9月,可取消注释下行
// | where Month != "2021-09"

核心逻辑说明

  • 借助range()函数为每条时间跨度记录生成所有覆盖的时间粒度节点,步长设置为1个月即可自动遍历跨度内的所有月份
  • 通过mv-expand将数组格式的覆盖时间展开为多行,后续直接按时间节点分组统计即可
  • 如果需要调整统计粒度(按周/按天统计),只需要修改range()的步长参数,以及startofmonth为对应的startofweek/startofday即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 03:36:01