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

如何通过Kusto查询实现与UI中相同的分组(不使用UI)

在Kusto中无需UI实现分组效果的方法

嘿,我来帮你搞定Kusto里不用UI操作的分组需求!其实Kusto的分组逻辑完全可以通过查询语句实现,UI只是用来可视化结果的载体,核心还是靠查询语法来定义分组规则。下面分几种常见场景给你具体举例:

1. 基础维度分组聚合(最常用)

这是最典型的分组场景:按一个或多个字段对数据进行聚合统计(比如计数、求和、平均值等),用summarize + by关键字就能实现。

比如按区域(Region)分组,统计每个区域的订单数量和总金额:

Orders
| summarize 
    订单总数 = count(),
    总金额 = sum(Amount)
by Region
  • by后面的字段就是分组依据,你可以放单个或多个字段(多字段用逗号分隔)
  • summarize里可以搭配各种聚合函数:count()、sum()、avg()、max()等

2. 保留分组内的明细数据

如果需要把分组下的所有原始明细数据保留下来(而不只是聚合结果),可以用make_list()、make_bag()这类函数把明细打包成集合:

比如把每个区域的所有订单ID存成列表,同时把每行订单的完整信息打包成字典集合:

Orders
| summarize 
    订单ID列表 = make_list(OrderID),
    订单明细集合 = make_bag(pack_all())
by Region
  • make_list()会将分组内指定字段的所有值拼成一个数组
  • pack_all()会把当前行的所有字段打包成一个键值对字典,make_bag()则把分组内的所有字典聚合到一起

3. 自定义规则分组(非现有字段)

如果需要按自定义逻辑分组(比如数值区间、字符串匹配规则),可以先通过extend创建一个自定义分组字段,再按这个字段分组:

比如把订单金额分成「低额/中额/高额」三个区间进行分组统计:

Orders
| extend 金额区间 = case(
    Amount < 100, "低额",
    Amount between (100 .. 500), "中额",
    Amount > 500, "高额"
)
| summarize 订单总数 = count()
by 金额区间

这里用case()函数实现了自定义的区间判断,生成新的分组字段后再进行聚合。

4. 多层嵌套分组(类似UI的折叠分组)

如果需要实现多层级的分组效果(比如先按区域,再按订单类型),可以用嵌套的summarize语句来构造层级结构:

Orders
| summarize 
    订单类型统计 = summarize 
        订单总数 = count(),
        总金额 = sum(Amount)
    by OrderType
by Region

这个查询会先按OrderType做内层分组统计,再把这些统计结果按Region做外层分组,最终结果里每个区域会对应一组订单类型的统计数据,实现多层分组的效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 18:47:43