先给结论:报告页数通常不等于对象数量,因为同一个对象可能被拆成多行,也可能根本不在报告里。去重的第一步不是删行,而是先定义“一个对象”是什么,再决定用哪一列当唯一标识。下面的假设情境说明这个判断过程。
假设你从关键字排名查询工具导出一份报告,显示“共 120 条记录”,但团队实际只维护 80 个查询对象。这个差额有三种常见来源,处理方式完全不同。
判断依据是看每一行的字段组合:如果除了某个维度列之外其余关键列都相同,大概率是多行;如果关键列本身就不同,说明对象定义有分歧。
去重前先落一条规则:一个对象由哪些字段唯一决定。常见做法是选一个主键,例如对象 ID、完整查询词,或“查询词加目标范围”的组合。规则写清楚后,去重才有依据。
接着做一次字段清单核对。把报告列名和对象定义逐条对照,标出哪些列属于对象身份、哪些属于观测条件。这一步的实际动作是:给每列打上“身份”或“条件”标签。结果会直接影响下一步——只有身份列相同的行才允许合并,条件列不同则保留为同一对象的不同观测。
如果团队里有人按查询词数对象、有人按页面数对象,分歧就会一直存在。此时不要争论谁对,而是把两种口径各自能回答的问题写下来,再决定报告用哪一种。
继续上面的假设:报告 120 行,实际 80 个对象。你按“查询词 + 目标范围”做主键,发现其中 30 行是同一对象在不同条件下的多条记录,另有 15 行是汇总行和空行,剩下 75 行对应 75 个对象,与预期的 80 个差 5 个。
这 5 个差额不能直接忽略。它可能说明有 5 个对象在报告里完全没有出现,也可能说明它们被并入了别的行。此时的动作是反向核对:拿对象清单去报告里查找,确认缺失的是“没数据”还是“被合并”。这个结果决定下一步——如果是没数据,要检查查询条件是否覆盖;如果是被合并,要调整主键规则。
合并完成后,用对象清单和报告做双向核对:报告里的每个对象都能在清单里找到,清单里的每个对象也能在报告里找到。只做单向核对容易漏掉缺失对象。
核对通过后,把去重规则和主键定义写进报告的说明里。这样下一次有人问“为什么是 75 而不是 120”,可以直接指向规则,而不是重新争论一遍。规则本身也要留出修订空间:当对象定义变化时,主键和去重逻辑需要同步更新,否则新旧报告无法比较。
最后提醒一点:数量归零或数量对不上,都不能单独证明去重做对了。它可能来自筛选条件、导出范围或对象清单本身的变动。把这几项一起核对,才能确认差异来自哪里。