跳至正文

【Tableau Prep Builder】如何删除数据表重复行[译]

XILEJUN
喜乐君 Tableau Visionary ✦ 5
📊 业务数据分析「专家」· 敏捷 BI 布道师
📚 《数据可视化分析》《业务可视化分析》多本书作者
🎓 中国地质大学(武汉)经管学院 MBA 校外导师
🤝 以 Tableau 会友,致力于构建业务分析通识框架

📚 本文配套课程 · 数据可视化分析系列

🎬 B 站课程:数据可视化分析:Tableau/SQL 原理与实践  —  https://www.bilibili.com/cheese/play/ss8093


“如何在 Tableau Prep 中删除重复记录” – Josh Milligan 分享了另一个篇有用的帖子,讲述了如何轻松删除 Prep 中的重复项,并在最后介绍了 LOD 计算。

2018-09-02 喜乐君,翻译自Josh Milligan 文章,下面提供了英文原文。
2024-07-15 修订 V2,补充 Prep 新功能说明

00-Clones.png

2024-07-15 喜乐君增补:

五、使用 Prep 2024.1+原生“删除重复行”功能

在 Tableau Prep Builder 版本 2024.1 及更高版本以及 Tableau Cloud 中的 Web 上受支持。

重复数据可能会影响数据质量、预测结果存在偏差并浪费存储空间。移除重复项可确保每个值都是唯一的,从而提供数据的准确表示形式。移除重复项的第一步是识别数据中的重复行。识别出重复项后,您随后可以将它们从工作流程中移除。

本质上,这是一个 Prep 在行级别的窗口函数,如下所示:

默认情况下,如果多行包含相同的值,它们将按第一个字段或源行号(如果可用)排序。这些字段用于将第一行标识为“唯一” ,将其余行标识为“重复” 。更改字段的排序顺序允许您指定要将哪个重复行标识为“唯一”。您可以通过编辑计算并更改“ORDERBY ”字段来更改顺序。

IF ({PARTITION [Field1], [Field2], [Field3]: { ORDERBY [FieldNameASC: ROW_NUMBER() } } = 1) THEN 'Unique' ELSE 'Duplicate' END

分析师可以编辑后修改自己特定的输出结果。

IF ({PARTITION [[Field1]], [[Field2]], [[Field3]]: { ORDERBY [[Field3]] DESC: ROW_NUMBER() } } = 1) THEN 'Unique' ELSE 'Duplicate' END

更多内容,参考官方帮助: Tableau 帮助 >>Tableau Prep 帮助 >>检查和筛选数据 >>移除重复行


原文:How to remove duplicate records in Tableau Prep By Joshua Milligan May 23, 2018

这里会介绍三种删除重复数据的方法,当然,后一种总比前一种更难一点。

一、完全重复的数据 Exact Duplicate Records in Tableau Prep

对于像上面的完全相同的两行数据,可以直接通过聚合功能删除——添加聚合步骤,然后全部添加到「分组字段」,没有「聚合字段」,这样完全相同的数据就会仅保留一条。

二、相似但并不完全相同的数据Similar, but not exactly, Duplicate Records

对于像上面部分数据一致,部分字段不同的数据,我们仅要保留最近的数据(上面中最后一次被雇佣的数据),还是使用聚合功能,不过需要「聚合字段」——把相同的字段拖入「分组字段」,而把想要去重的字段拖到「聚合字段」,并根据需要修改聚合的方式,在这里,我们把默认的求和,改为求最大值(max),就会保留最后一次记录。

去重-聚合函数.png

三、相似的延伸数据Extended Near Duplicate Records

在这个数据中,我们知道不同的date hired是因为不同的职位position,我们依然想要保留最近的数据,上面的两个方法就不行了。如果使用第二种方法,第三条和第四条数据都会被保留,因为position字段是不同的,如何处理?先处理Date Hired,再关联position。如下:

1、首先执行上面第二步,把employee ID和Name拖入「分组字段」,把Date Hired拖入「聚合字段」并改为max,这样就会保留四行数据——不要拖入Position。Max Date步骤就是上面第二种方法。

2、把上面的结果,和原数据做联结,把position数据联结到上面的结果中。如下图:

去重-聚合函数 与联结.png

四、奖励:Prep中的LOD计算 Bonus: LOD Calculation in Tableau Prep

在上面的Max Date,其实就是一个Lod操作,类似于我们在desktop中的 {FIXED [Employee ID] : MAX([Date Hired]}

(喜乐君修订)Tableau Prepcs 2020.1.3版本开始,支持LOD操作,也可以通过图形化的方式,实现LOD的逻辑和结果。

参考: Prep2020拥抱LOD:Fixed LOD