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

KQL查询:相同key下仅数字值合并为列表,非数字值保留单独行

KQL 实现指定key合并数字类型value需求

实现逻辑

核心思路是先按key分组判断该组内的value是否全部为数字类型,再分逻辑处理:

  1. 标记每行value是否为数字(或可转换为数字的字符串)
  2. 统计每个key下非数字value的数量,作为是否需要聚合的判断依据
  3. 拆分两种处理逻辑后合并结果:key下无非数字value则聚合生成列表,否则保留原始单行数据

可运行示例代码

// 构造和示例一致的测试数据集
datatable(key:string, value:string)
[
    "location", "CA",
    "location", "LA",
    "code", "2",
    "code", "3",
    "IP", "192.143.204.19"
]
// 标记当前行value是否为可转换的数字
| extend is_numeric = isnotnull(tolong(value))
// 窗口函数统计每个key下的非数字value总数
| extend non_numeric_count = countif(is_numeric == false) over (partition by key)
// 分逻辑处理后合并结果
| union isfuzzy=true
    // 逻辑1:该key下所有value都是数字,聚合为列表
    ( where non_numeric_count == 0
    | summarize value = make_list(value) by key ),
    // 逻辑2:该key下存在非数字value,保留原始行不合并
    ( where non_numeric_count > 0
    | project key, value )
// 可选:按key排序和示例输出顺序对齐
| order by key asc

注意事项

如果你的数据集里value本身就是数值类型而非字符串存储,只需要把is_numeric的判断条件替换为typeof(value) in (long, int, double, decimal)即可。
如果同一key下同时存在数字和非数字value,数字部分也会和非数字一样保留单独行,不会合并,符合需求要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:06:04