先判断差异来自“同一对象被拆成多行”还是“报告里混进了不该算的对象”。前者应做对象级合并,后者应先修筛选条件再谈去重;如果连对象主键都没统一,直接按网址去重通常会把不同业务页面误合并。
报告页数大于实际对象数量,常见原因有两类。第一类是同一对象在报告中出现多次,例如同一页面因带参数、带尾斜杠、大小写不同而被拆成多行;第二类是报告范围本身包含了测试页、归档页、旧域名或已下线的对象,这些行并非重复,而是根本不该进入统计。
区分方法很直接:随机抽取若干条“多出来”的行,看它们能否映射回同一个业务对象。如果能映射回同一个对象,属于重复计数,处理方向是合并;如果映射到不同对象但对象已失效或不属于本次范围,处理方向是过滤。把这两类混在一起做去重,往往会把真实页面删掉,或把无效页面留在报告里。
当团队已经约定用某个字段作为对象唯一标识时,去重应围绕这个主键做,而不是围绕展示用的网址字符串。实施动作可以分三步:
这个动作的结果会直接影响后续判断:如果合并后数量仍高于台账,说明还有范围混入问题,需要回到筛选条件;如果合并后数量低于台账,说明主键映射过宽,可能把不同对象并成了一个。
如果报告来自多个来源,且各来源对同一对象的标识方式不同,此时不应直接去重,而应先建立映射表。映射表至少包含来源标识、业务对象标识和生效状态三列。只有映射关系明确的行才允许合并,映射不上的行保留为待处理项。
假设一个场景:某业务有 100 个实际对象,报告显示 140 行。经抽查,其中 25 行是同一对象因参数不同产生的重复,15 行是已下线对象。此时正确做法是先过滤 15 行下线对象,再对剩余 125 行做对象级合并,而不是对 140 行统一去重。这个例子只用于说明比较方法,不代表任何真实项目数据。
例外情况是:如果下线对象仍需保留历史记录用于对比,就不应直接删除,而应标记状态并在统计口径中单独说明。此时报告页数仍会大于当前有效对象数,这是口径设计的结果,不是去重失败。
去重只是让报告对象数量与业务对象数量对齐,它本身不证明排名变化或效果变化。回验时重点看两件事:合并前后同一对象的指标是否出现异常跳变;被合并掉的行是否包含独立业务含义。如果跳变明显或存在独立含义,应保留拆分口径,并在报告中注明两种口径的差异。
实际操作中,建议把去重规则写成可复用的说明,附在报告首页,让执行人员知道哪些行被合并、哪些行被排除。这样下次报告页数再次出现不一致时,可以先对照规则判断是规则失效还是数据源变化,而不是每次重新争论去重方法。