先判断“页数”和“对象数”分别代表什么:如果报告按分页、分块或分批返回,页数通常大于实际对象数,去重应放在对象标识层,而不是按页码或行号删减。若报告声称每个对象只出现一次却仍对不上,则要按同一标识重复、标识缺失和统计口径混用三类原因分别核查。下面给出两种条件下的不同处理路径。
这类报告里,一页可能只装若干条记录,最后一批还可能不足一页。此时页数不是对象计数,不能直接当作去重依据。正确做法是先确认报告是否提供稳定的对象标识,例如编号、链接、名称加时间戳的组合键。
一个可执行的动作是:把原始记录另存一份,在副本上按标识排序,统计“唯一标识数”和“总行数”。如果唯一标识数明显小于总行数,下一步不是继续删行,而是检查导出时是否按时间窗口重复抓取了同一批对象。
这种反常结果通常来自三种可区分的原因。第一种是统计口径不同:页数按请求次数计,对象数按去重后的实体计。第二种是标识缺失:部分记录没有可比较的标识,被系统当作不同对象。第三种是时间差:两次读取之间对象被新增、删除或改名,导致同一对象在前后批次中表现不同。
区分证据可以这样取:
假设一份报告有 120 行、显示 6 页,但唯一标识只有 100 个。此时页数 6 不能推出对象数 120,也不能推出对象数 100 就是最终值,因为还要确认是否有 20 行属于同一对象的多次出现。这个例子只用来说明比较方法,不代表任何具体工具的真实输出。
去重不是单纯删重复行,而是先定义“什么算同一个对象”。常见口径有三种:按唯一标识、按名称加时间、按链接。选哪种取决于后续用途。
动作上,建议先输出一张对照表:总行数、唯一标识数、缺失标识行数、重复行数。四个数字对齐后,再决定是否删除重复行。若缺失标识行数占比不低,直接删除会改变对象总数,下一步应改为补全标识或单独保留待核组。
有些对象的标识会随状态、版本或归属变化而改变,例如改名、换分类或合并。此时一次性去重只能解决当前批次,下一批仍会对不上。处理方式是保留标识变更记录,把新旧标识映射到同一对象,再去重。若无法建立映射,应在报告中标注“疑似同一对象”,而不是强行合并。
另一个例外是报告页数包含空页或错误页。空页不携带对象,但会计入页数。遇到这种情况,先排除空页和错误页,再比较页数与对象数,否则会把页面问题误判为去重问题。
如果唯一标识稳定且重复行可解释,按标识去重并保留最新状态,然后重新统计对象数。如果唯一标识不稳定或缺失较多,先不要删行,改为补全标识或建立映射表,再决定是否合并。两种路径的分界点不是页数多少,而是标识能否稳定指向同一个实际对象。完成这一步后,再用同一口径重新导出一次,比较唯一标识数是否收敛;若仍不收敛,应回到导出条件和时间窗口核查,而不是继续在报告页面上删减。