Power BI中删除重复Bug ID行,保留有效值或必要Null行
Bug ID表格去重:精准保留有效值/空值
我手里有个带Bug ID和Root cause的表格,同一个Bug ID可能有多行,有的Root cause是null,有的是Code error或Integration error这类有效值。直接按Bug ID去重会随机丢失有效值,删除null行又会误删那些确实没有有效值的Bug(比如Bug ID 567就得留着null)。目标很明确:每个Bug ID只留一行,有有效值就留有效值,没有效值就留null。
SQL处理方案
用分组排序的逻辑就能搞定,核心是让有效值行排在每组最前面,再取第一行:
WITH ranked_bugs AS ( SELECT Bug_ID, Root_cause, -- 给行排序:有效值排前面,null排后面 ROW_NUMBER() OVER ( PARTITION BY Bug_ID ORDER BY CASE WHEN Root_cause IS NOT NULL AND Root_cause IN ('Code error', 'Integration error') THEN 0 ELSE 1 END ) AS rn FROM 你的表名 ) SELECT Bug_ID, Root_cause FROM ranked_bugs WHERE rn = 1;
逻辑说明
- 按Bug ID分组,把同一个Bug的行归到一组
- 用CASE给行打优先级:有效值标记为0,null标记为1,排序后0优先出现
- 每组只取第一行,自然就留下了有效值(存在的话),无有效值则保留null行
Excel处理方案
如果用Excel手动处理,步骤也不复杂:
- 添加辅助列(比如C列),输入公式
=IF(AND(B2<>"null",OR(B2="Code error",B2="Integration error")),0,1),下拉填充所有行(假设Bug ID在A列,Root cause在B列) - 先按
Bug ID升序排序,再按辅助列升序排序——这样同一个Bug的有效值行会排在最上方 - 选中A列(Bug ID列),点击「数据」→「删除重复值」,只勾选Bug ID列,确定后即可完成去重
内容的提问来源于stack exchange,提问作者ANU REKHA
相关产品推荐
相关产品推荐

