测试重复
概念信息
一个或多个域中的重复值,或者重复记录,可以是数据条目错误或如为了逃避监督的分割信用卡交易欺诈行为的结果。
唯一值要求
绝不能包含重复值的域是值唯一标识记录的域。例如,员工表绝不能包含重复的员工编号,因为每个编号都应该标识唯一的员工。
有效的重复值
重复值也可能是有效的。例如,交易表可能由于相同客户完成多项交易而包含重复的客户编号。
不同类型的重复项测试
可以使用 Analytics 以如下方式测试重复:
测试范围 | 使用此测试的条件: |
---|---|
一个域 |
特定域中的所有值都应该是唯一的,如员工编号或支票号码。 |
两个或更多个域的组合 |
任一单独的域不需要满足唯一性,但某些域组合起来时需要满足唯一性。 示例在年度薪资文件中,雇员编号域和支付日期域都会包含大量重复值。雇员每两周领取工资,同一天会向多个雇员发放工资。 但是,某一天,某个雇员仅会出现一次。如果在员工编号域和支付日期域的组合中存在重复值,则表明某个员工可能在同一支付期间被支付了两次工资。 |
记录中的所有域 |
检查是否存在完全重复记录,即记录中的每个域都是重复的。整个重复记录可以是数据条目错误或其他交易异常的结果。 |
排序和重复项
通常,您仅应使用一个或多个排序的键域测试是否存在重复项。键域中的重复值仅在相邻时才会被发现。
如果您使用未排序的键域测试是否存在重复项,则不相邻的重复值不会被报告为重复项。如果存在相同重复值的两个或更多个聚类,则它们会被报告为重复项,但位于不同的组中。
根据您的分析目标的不同,使用未排序的键域测试是否存在重复项可能是有意义的。例如,您可能想要仅查找那些在源表中紧密相邻的重复值,并且忽略非相邻重复值。
在输出表中包括组号域。
您可以选择在重复项输出表中包括组号域。该域向每个唯一的重复项组分配一个顺序递增的编号。当您分析输出表中的数据时,按编号引用重复项组的能力可能是有用的。
按组号过滤重复项输出表
您组合使用多个键域来测试应付帐款表中是否存在重复记录:
- 供应商编号
- 发票编号
- 发票日期
- 发票金额
您想要过滤生成的重复项输出表,以便只有某些重复项组会接受附加的处理。
使用键域组合创建过滤器会很费力。例如:
SET FILTER TO ((Vendor_No = "11475") AND (Invoice_No = "8752512") AND (Invoice_Date = `20191021`) AND (Invoice_Amount = 7125.80)) OR ((Vendor_No = "12130") AND (Invoice_No = "589134") AND (Invoice_Date = `20191117`) AND (Invoice_Amount = 10531.71)) OR ((Vendor_No = "13440") AND (Invoice_No = "5518912") AND (Invoice_Date = `20191015`) AND (Invoice_Amount = 11068.20))
相反,基于组号创建过滤器可实现相同的结果:
SET FILTER TO MATCH(GROUP_NUM, 3 , 8, 11)
步骤
可对活动表中的一或多个域进行测试,检测是否存在重复值或整个重复记录。

可以测试字符、数值和日期时间域是否有重复。如果字符和数值一起出现在字符域中,测试所有的字母数值字符。
说明
要使结果有效,必须在测试之前对要测试的一个或多个域进行排序。可以提前排序一个或多个域,或者在重复测试过程中使用预排序选项。
选择域
- 在导航器中,打开您想要测试其是否包含重复项的表。
- 选择分析 > 重复。
-
要在一个或多个域中检测重复项:
-
在主要选项卡上,执行以下操作之一:
-
从重复域列表中,选择要测试的一个或多个域。
-
单击重复域以选择要测试的一个或多个域,或者创建一个表达式。
选择多个域的顺序,即这些域在输出结果中的显示顺序。如果要将结果附加到现有的 Analytics 表中,域选择和顺序必须与现有表中的域选择和顺序完全相同。
-
-
可选。单击重复域后,通过单击一个或多个选定域旁边的排序箭头
,可指定输出结果按降序顺序排列(默认情况下,会按照升序顺序排列输出结果)。
-
执行以下操作之一:
-
从列表域列表中,选择要添加到输出结果中的一个或多个附加域。
-
单击列表域以选择一个或多个要添加的附加域,或者创建一个表达式。
其他域可为结果提供有用的上下文。要进行重复项测试的选定域会自动显示在任何结果记录的开头。无需在列表域下专门作出选择。
-
-
可选。如果您想要在输出表中包括组号域,请选择添加组。
组号域向每个唯一的重复项组分配一个顺序递增的编号。
-
-
要检测整个重复记录:
-
在主要选项卡中,单击重复项位置。
-
单击全部添加,将所有域添加到选定域。
-
可选。单击一个或多个选定域旁边的排序箭头
,可指定输出结果按降序顺序排列(默认情况下,会按照升序顺序排列输出结果)。
-
单击确定。
不需要从域列表中选择所有域,因为表中的所有域都会自动显示在结果记录中。
-
可选。如果您想要在输出表中包括组号域,请选择添加组。
组号域向每个唯一的重复项组分配一个顺序递增的编号。
-
从处理中排除记录(可选)
-
如果当前视图中有您要排除在外不作处理的记录,请执行以下任一操作:
-
在 If 文本框中输入条件
-
单击 If,使用表达式生成器创建 IF 语句
If 条件应考虑到视图中的所有记录,并过滤掉那些不满足指定条件的记录。
说明
在应用任何范围选项(前、后、当)之后,仅针对表中的剩余记录评估如果条件。
-
取消选择“预排序”(可选)
-
测试大表的重复项时,如果先前操作已对测试的一个或多个域进行排序,那么取消选择预排序可以节省时间。
如果测试的一个或多个域中的数据未排序,则必须选中预排序,以确保找到所有重复项。
说明
如果取消选择预排序,则测试的一个或多个域必须与之前已排序的一个或多个域相匹配,以保证结果有效。
如果选中的和排序的域之间不匹配,结果会有消息警告:文件序列出错。如果将结果输出到 Analytics 表中,警告消息会出现在命令日志中。
配置输出
- 然后单击输出选项卡。
-
在目标面板上,选择适当的输出选项。
说明
不适用于某个特定分析操作的输出选项均将禁用。
选项 详情 屏幕 在 Analytics 显示区域中显示结果。
提示
您可以单击显示区域中的任何链接结果值,深入了解源表中关联的一个或多个记录。
如果输出表中包含大量的记录,那么将结果保存到文件要比在屏幕上显示结果更快且更有用。
打印 将结果发送到默认打印机。 图表 创建结果图表并在 Analytics 显示区域中显示。 文件 将结果保存或附加到 Analytics 表或文本文件中,或者覆盖现有的表或文件。
- Analytics 表 如果项目中还没有此表,则打开项目时会将其添加到项目中。
- 文本文件 文件保存在 Analytics 外部。
-
如果选择了文件作为输出类型,请在作为面板中指定相应的信息。
选项 详情 文件类型 -
Analytics 表 – 将结果保存或附加到 Analytics 表中,或覆盖现有的 Analytics 表。
-
ASCII 文本文件或 Unicode 文本文件 – 将结果保存或附加到文本文件,或覆盖现有的文本文件。
名称 -
要将结果保存到新表或文件,请执行以下操作
在名称文本框中输入一个文件名称。如果 Analytics 预填充文件名,您可以接受预填充的名称,也可以更改它。
-
要将结果附加到现有的表或文件,或者覆盖现有的表或文件,请执行以下操作
单击名称,然后在保存或另存为对话框中选择一个现有的表或文件。
您可以指定一个绝对或相对文件路径,或导航到一个不同的文件夹,将结果保存、附加或覆盖到与项目位置不同的某个位置。例如:
C:\结果\输出.FIL 或 结果\输出.FIL。
说明
Analytics 表名称限制为 64 个字母数字字符,且不包括 .FIL 扩展名。该名称可以包括下划线字符 ( _ ),但不能包括其他特殊字符或任何空格。该名称不能以数字开头。
本地 仅在连接到服务器表并将结果保存、附加或覆盖到 Analytics 表时启用。
-
选择本地将结果保存、附加或覆盖到与 Analytics 项目相同的位置。
-
取消选择本地将结果保存、附加或覆盖到服务器上的 Prefix 文件夹中。
说明
对于从 AX 服务器表的分析或处理产生的输出结果,请选择本地。您不能取消选择本地设置以将结果表导入到 AX 服务器。
-
- 可选。在适当的文本框中指定页眉或页脚。
单击页眉或页脚,可输入多行页眉或页脚。还可以在页眉或页脚文本框中输入分号 (;) 作为换行符。
默认情况下,页眉和页脚居中放置。在页眉或页脚文本前输入左尖括号 (<)可左对齐文本。左对齐多行要求在每行的开头处有一个尖括号。
说明
某些输出类型无法使用指定页眉或页脚。
指定操作范围
- 单击更多选项卡。
-
在范围面板中,选择适当的选项:
- 全部
- 前
- 下一页
- While
展示更多
范围选项 详情 全部 (默认)指定处理视图中的所有记录。 前 在文本框中输入一个数字。从视图中的第一个记录开始处理,并且仅包括指定数量的记录。 下一页 在文本框中输入一个数字。从视图中当前选择的记录开始处理,并且仅包括指定数量的记录。必须在视图最左边的列中选择实际记录数量,而不是行中的数据。 While 使用 WHILE 语句,根据特定条件或条件组来限制对视图中的记录进行处理。
在 While 文本框中输入一个条件,或者单击 While 使用表达式生成器创建一个 WHILE 语句。
只有当指定条件值为真时,WHILE 声明才允许对视图中的记录进行处理。当条件变为假时,处理立即终止,不再考虑剩余的记录。
可将当选项与全部、前或后选项结合使用。在达到一个限制后,请立即记下处理步骤。
说明
前或后选项会参考表中记录的物理顺序或索引顺序。前或后选项会忽略应用于表视图的任何过滤器或快速排序。但是,分析操作的输出结果会遵守已应用的过滤器。
如果视图进行了快速分类,后和前操作相同。
最终确定设置并输出结果
-
可选。如果您选择了文件作为输出类型,并且希望将输出结果附加到现有表或文件的末尾,请执行以下操作之一:
-
如果您确定输出结果与现有表或文件结构相同,请选择附加到现有文件。
选择附加到现有文件会强制执行附加操作,即使输出结果的记录长度与现有表或文件的记录长度不同也是如此。如果两种记录长度各不相同,则数据结构也不同,并且附加操作无法正确发挥作用。
-
如果您希望 Analytics 比较输出结果的记录长度与现有表的记录长度,请取消选择附加到现有文件。这个自动选中选项仅适用于 Analytics 表,不适用于文本文件。
说明
如果您不确定输出结果与现有表的数据结构是否相同,则请取消选择附加到现有文件。有关附加和数据结构的详细信息,请参阅将输出结果附加到现有表。
-
-
如果您选择了文件(Analytics 表)作为输出类型,并且想让输出表在操作完成后自动打开,请选择使用输出表。
- 单击确定。
如果您执行下列两项操作,则输出结果中仅显示重复值或记录,而不会显示值或记录的首次出现:
- 将结果输出至屏幕或文本文件
- 仅在输出结果中添加测试域,而不选择任何附加域
如果将结果输出至屏幕,则可以单击任意值,以便同时查看重复项以及值或记录的首次出现。
- 如果覆盖提示出现,请选择合适的选项。
如果想让附加选项显示,而实际未显示,请单击否取消操作并参阅 将输出结果附加到现有表。
删除重复项
可使用汇总操作从数据集中删除重复值或记录,并将剩余的唯一值或记录保存到一个新的 Analytics 表中。

选择域
- 在导航器中,打开您想要从中移除重复项的表。
- 选择分析 > 汇总。
- 在主要选项卡上,执行以下操作之一:
- 从汇总域列表中选择可能包含重复值的一个或多个域。
- 单击汇总域以选择一个或多个域或者创建一个表达式。
域选择的顺序就是列在结果中显示的顺序。
说明
请选择适当的域以达到您所需的唯一性等级。
例如,如果您想要删除重复的员工记录,并且仅选择姓氏域,则存在删除具有相同姓氏但具有不同名字的员工的所有记录的风险。同时选择姓氏域和名字域可提高唯一性等级。
要仅删除完全重复的记录,请单击汇总域和全部添加。
- 不要选择任意小计域。
- 可选。执行以下操作之一:
- 在其他域列表中选择要包括在输出结果中的其他域。
- 单击其他域以选择域或者创建一个表达式。
说明
请仅选择那些为每个汇总组中的所有记录包含相同值的域。有关详细信息,请参见“其他域”选项。
取消选择“预排序”(可选)
-
如果可能包含重复值的域已经排序,则请取消选择预排序。
如果域中的数据未进行排序,必须选中预排序,确保获得有效结果。
从处理中排除记录(可选)
-
如果当前视图中有您要排除在外不作处理的记录,请执行以下任一操作:
-
在 If 文本框中输入条件
-
单击 If,使用表达式生成器创建 IF 语句
If 条件应考虑到视图中的所有记录,并过滤掉那些不满足指定条件的记录。
说明
在应用任何范围选项(前、后、当)之后,仅针对表中的剩余记录评估如果条件。
-
配置输出
- 然后单击输出选项卡。
- 在至面板上选择文件。
- 在作为面板中指定以下信息:
文件类型 – Analytics 表 是唯一的选项。将结果保存到新的 Analytics 表中,或将结果附加到现有的 Analytics 表。
名称 – 在 名称文本框中输入表名。或单击 名称输入表名,或者在保存或另存为对话框中选择一个现有的表,以覆盖或附加到该表中。如果 Analytics 预填充了一个表名称,您可以接受预填充的名称或更改它。
您还可以指定一个绝对或相对路径,或导航到一个不同的文件夹,将表保存或附加到与项目位置不同的位置。例如:
C:\结果\无重复项.fil 或 结果\无重复项.fil。
本地–只有在连接服务器表时启用。选择 本地将输出表保存到与项目相同的位置,或者指定一个路径或导航到不同的本地文件夹。使本地保持未选中状态,以便将输出表保存到 Analytics 服务器上的 Prefix 文件夹中。
说明
对于从 Analytics Exchange 服务器表的分析或处理中产生的输出结果,请选择本地。您不能使用本地设置将结果表导入到 AX 服务器。
指定操作范围
- 单击更多选项卡。
-
在范围面板中,选择适当的选项:
- 全部
- 前
- 下一页
- While
展示更多
范围选项 详情 全部 (默认)指定处理视图中的所有记录。 前 在文本框中输入一个数字。从视图中的第一个记录开始处理,并且仅包括指定数量的记录。 下一页 在文本框中输入一个数字。从视图中当前选择的记录开始处理,并且仅包括指定数量的记录。必须在视图最左边的列中选择实际记录数量,而不是行中的数据。 While 使用 WHILE 语句,根据特定条件或条件组来限制对视图中的记录进行处理。
在 While 文本框中输入一个条件,或者单击 While 使用表达式生成器创建一个 WHILE 语句。
只有当指定条件值为真时,WHILE 声明才允许对视图中的记录进行处理。当条件变为假时,处理立即终止,不再考虑剩余的记录。
可将当选项与全部、前或后选项结合使用。在达到一个限制后,请立即记下处理步骤。
说明
前或后选项会参考表中记录的物理顺序或索引顺序。前或后选项会忽略应用于表视图的任何过滤器或快速排序。但是,分析操作的输出结果会遵守已应用的过滤器。
如果视图进行了快速分类,后和前操作相同。
最终确定设置并输出结果
-
如果您想让输出表在操作完成后自动打开,请选择使用输出表。
- 如果您想要将输出结果附加到现有 Analytics 表的末尾,请执行以下操作之一:
如果您肯定输出结果和现有表的结构完全相同,请选择附加到现有文件。
如果您希望 Analytics 比较输出结果和现有表的记录长度,请使附加到现有文件保持未选择状态。如果记录的长度不相同,则数据结构不相同,并且附加操作无法正确工作。
说明
如果您不确定输出结果与现有表的数据结构是否相同,建议您使附加到现有文件保持取消选择状态。有关附加操作和数据结构的详细信息,请参见将输出结果附加到现有表。
- 单击确定。
- 如果覆盖提示出现,请选择合适的选项。
如果想让附加选项显示,而实际未显示,请单击否取消操作并参阅 将输出结果附加到现有表。