先给结论:页数多于对象数量,通常不是“软件算错”,而是同一对象被多个维度拆开计数,或报告把空记录、无效行也算了进去。去重的正确顺序是——先确认“实际对象”的唯一定义,再让软件按这个定义聚合,最后用抽样核对剩余差异。缺少完整数据或权限时,你仍能做的动作是抽取若干条明细,人工比对对象标识是否重复,但由此不能推出全量重复率,也不能断定软件本身有问题。
假设一个情境:你负责一批商品页的关键词优化,软件报告显示共 420 页,但后台导出的商品对象只有 300 个。这个差额不能直接当作 120 个重复项,因为两者可能根本不是同一种计量单位。
所以第一步不是去重,而是问:报告里的每一行,究竟对应“一个待优化对象”,还是“一次查询结果”。这两个答案会导向完全不同的处理方式。
如果你拿不到完整导出,只能看到报告前若干页,可以做一次小样本核对。具体动作是:从报告不同位置各取若干行,记录每行的对象标识字段,看同一个标识是否反复出现。
这个动作的结果会直接决定下一步:
需要明确:抽样只能告诉你“重复以哪种形式存在”,不能给出全量重复比例。样本里没出现重复,不等于整体没有重复;样本里重复很多,也不能直接外推到全部页数。这一步的结论强度有限,但它足以让你选对聚合键。
确定唯一定义后,去重逻辑应当围绕它展开。常见做法是让软件或导出表按对象标识分组,把同一对象的多个命中合并为一行。这里的关键是选对聚合键:
聚合之后,页数会向对象数靠拢。如果仍然不一致,差异往往来自两类原因:一是存在无法归属的孤儿行,二是对象定义本身在两边不一致,比如报告按页面计数,后台按商品计数,一个商品对应多个页面。这时不是继续去重,而是先统一口径。
有人看到去重后页数下降、或某个计数归零,就认为问题解决了。这并不充分,因为同样的现象还有别的解释:
要判断处理是否可靠,至少要看聚合键是否稳定、抽样行是否都能正确归属、以及排除掉的行是否有明确理由。只凭数字变化下结论,容易把“看不见”当成“已解决”。
综合起来,面对页数与对象数不一致,可以按这个顺序推进:先定义唯一对象标识,再抽样确认重复形式,然后按该标识聚合,最后复核剩余差异的来源。每一步都为下一步提供依据——抽样结果决定聚合键,聚合结果决定差异是继续清理还是回头统一口径。缺少完整数据时,就把结论限定在“已核对范围内成立”,并标注哪些判断仍需全量数据验证,而不是用局部结果替代整体结论。这样处理,即使权限不全,也能得到可复核、可交接的去重结果。