先给结论:报告页数通常不等于实际对象数量,去重前要先判断“一页一条”这个假设在哪里失效。假设你有一份导出的报告,共120行,其中60行是同一对象在不同页出现,那么真正需要处理的是对象身份,而不是行数。处理顺序应是:先确认报告是否按对象分页,再选主键去重,最后用抽样验证去重结果是否误删。
报告页数偏多,常见有三种原因,处理方式完全不同。
区分方法很直接:抽10行,看它们的主键字段是否相同。主键相同但行不同,偏向前两种;主键不同但指向同一实体,偏向第三种。这个判断决定了后面用“按行去重”还是“按对象归并”,选错会直接改变最终数量。
假设一份报告共90页,每页列出若干对象,导出后得到90行,每行带一个object_id和页码字段。表面看是90个对象,但你发现其中20个object_id各出现两次,分别落在相邻两页。此时实际对象数量应接近70,而不是90。
接下来的动作是:以object_id为唯一键做一次归并,保留首次出现的记录,并记录重复次数。结果是行数从90降到70。这个结果会影响下一步——如果重复次数集中在少数几个对象上,说明是分页或导出机制造成的,不需要逐条人工核对;如果重复分散且object_id写法不一致,说明问题出在身份归一,必须回到数据源修正标识规则,否则后续每次导出都会重现同样的偏差。
并非所有重复都该合并。以下情况需要保留区分,否则会把真实差异当成冗余删掉。
判断标准是:被合并掉的那部分差异,是否会影响你接下来要做的决策。如果会,就保留维度;如果不会,才合并。
去重完成不等于数量正确。可以用两个动作交叉验证。
需要提醒的是,报告行数下降或某个统计值变小,本身不能证明去重正确。它也可能来自导出范围变化、字段缺失或筛选条件不同。只有结合主键规则和抽样结果,才能判断这次去重是否成立。
在小样本里,object_id往往整齐且唯一,按它去重就能得到稳定结果。但对象数量扩大后,标识规则可能因来源不同而不统一,分页策略也可能随数据量变化,原本成立的“一页一条”假设就会失效。因此这套方法有明确边界:它适用于标识字段可靠、重复主要来自展示层的场景;如果标识本身不可信,就必须先解决身份归一,再谈去重数量。对具体工具而言,其导出字段、分页规则和去重支持需要以实际版本为准,不宜直接照搬其他报告的字段假设。