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

Kusto中去重:重复记录保留非空column4值的实现方法

Kusto表去重解决方案

问题分析

需求是按column1、column2、column3的组合去重:

  • 若组合存在多条记录,仅保留column4非空的那条
  • 若组合唯一且column4为空,保留该记录

原语句的问题在于全局排序后使用row_number,无法精准按组合分组处理空值优先级,导致结果错误。

修正后的KQL语句

推荐两种实现方式:

方式一:使用partition by分组处理

tbl
| extend has_non_empty_col4 = column4 != ""
| partition by column1, column2, column3 (
    sort by has_non_empty_col4 desc, column4
    | take 1
)

方式二:使用row_number()窗口函数

tbl
| extend rn = row_number() over (
    partition by column1, column2, column3 
    order by iif(isempty(column4), 0, 1) desc
)
| where rn == 1
| project-away rn

原理说明

  • 两种方式均先按column1、column2、column3的组合分组
  • 分组内优先将column4非空的记录排到前面
  • 最终取每组的第一条记录,满足去重需求

预期结果

执行后将得到如下数据:

column1column2column3column4
1234businessorangepaypal
3456businessapple
4845businessbananavenmo

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 09:22:38