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

如何用KQL过滤冗余结果?按日期分组处理计数数据需求

可以用KQL实现该需求,以下是具体方案

首先用datatable模拟你的输入数据:

datatable(Type:int, Count:int, Date:string)
[
    2, 20, "11-24",
    3, 0, "11-24",
    4, 0, "11-24",
    2, 13, "12-01",
    3, 1, "12-01",
    4, 0, "12-01",
    2, 0, "12-08",
    3, 0, "12-08",
    4, 0, "12-08"
]

完整处理查询

datatable(Type:int, Count:int, Date:string)
[
    2, 20, "11-24",
    3, 0, "11-24",
    4, 0, "11-24",
    2, 13, "12-01",
    3, 1, "12-01",
    4, 0, "12-01",
    2, 0, "12-08",
    3, 0, "12-08",
    4, 0, "12-08"
]
| summarize has_positive = max(Count) > 0 by Date
| join kind=inner (_) on Date
| where has_positive and Count > 0 or not(has_positive)
| extend Type = case(not(has_positive), 5, Type)
| summarize arg_max(Type, Count) by Date, has_positive
| project Type, Count, Date

步骤解释

  1. 标记日期组特征:按Date分组,用summarize生成has_positive字段,标记该日期是否存在Count为正的记录。
  2. 关联原数据:通过join将分组标记与原数据关联,让每条记录都携带所属日期组的特征标记。
  3. 过滤冗余数据:保留两类记录:① 日期组有正Count且当前记录Count>0;② 日期组全为0的所有记录。
  4. 调整Type字段:对全0的日期组,统一将Type改为5。
  5. 去重整理:对全0的日期组,用summarize arg_max仅保留一行;有正Count的组保留所有符合条件的记录。
  6. 输出格式化:用project调整字段顺序,匹配需求的输出结构。

执行后输出结果与你期望的完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 03:15:38