合并表
合并表使您可以将两个记录结构相同且已排序的 Analytics 表组合为与原始表使用相同排序顺序的第三个新表。通过归并记录合并工作,这意味着按照记录现有的排序顺序组合记录。
您可以使用组合操作执行有用的任务,如将已排序的员工表组合为保持该排序顺序的统一表。
示例
场景
您想要对整个员工记录集执行分析,但这些记录分散在两个部门的 Employee 表中。
这两个表都按姓氏排序,因而您想要避免在组合记录后重新排序的额外开销。
方法
您可以将两个表中的记录合并到新的第三个表中。合并可保持按姓氏进行的排序。
表需要完全相同的记录结构
为了成功地合并两个表,这两个表中的记录在结构上必须完全相同:
- 数据元素、域的数量和顺序必须完全相同。
- 相应域的数据类型必须完全相同。
- 相应域的起始位置和长度必须完全相同。
- 对于日期时间域,日期时间格式必须完全相同。
说明
合并对话框中仅显示字符域和字符计算域。两个表中未显示的域也必须具有相同的数据结构。
比较记录结构
在尝试合并两个表之前,您可以比较这些表中的相应域以确保它们具有相同的结构。要了解更多信息,请参考比较数据结构。
如果域级别的数据结构差异妨碍了表的成功合并,您或许能够协调相应的域。要了解更多信息,请参考调整域。
提示
在某些情况下,在 Analytics 外部组合数据可能更容易或更实际。如果您因为域之间的不一致而导致在 Analytics 中合并数据有困难,请参见组合数据的替代方法。
使用公共键域合并表
您使用公共键域 – 即同时出现在这两个表中的员工编号、供应商 ID 或姓氏等数据元素来合并表。两个原始表中的记录被基于它们在原始表所使用的排序顺序中的位置在合并表中进行定位。
对您要合并的表中的键域有多个要求:
| 键域特征 | 要求 |
|---|---|
| 数据元素 | 必须相同。例如,两个键域都是姓氏域。 |
| 排序顺序 | 必须相同,且必须是升序。 说明 合并操作期间,您可以使用预排序主表选项对主键域进行排序。如果辅助键域未排序,则必须首先在单独的排序操作中对其进行排序,然后才能执行合并。 |
| 数据类型 |
必须是字符。 |
| 字段类型 | 可以是物理域或计算域。 |
| 域名称 | 可以不同。 |
| 开始位置 | 必须相同。 |
| 域长度 |
必须相同。 |
主表和辅助表及键域
合并操作中的表和键域被基于您打开表的顺序标识为主项和辅助项:
-
主表 – 打开的第一个表
-
主键域 – 您从主表中选择的键域
-
辅助表 – 您打开的第二个表
打开辅助表意味着将其与一个主表相关联,使其可供处理。辅助表不会在“视图”选项卡中打开。
-
辅助键域 – 您从辅助表中选择的键域
您可以自由选择所需的主表和辅助表以及键域。然而,只有在表和键域符合合并的要求时,合并才会成功。
要了解更多信息,请参考关于关键字域。
使用多个键域合并表
如果要合并两个使用了多个主、辅助键域(即多于一个公共关键字)的表,适用如下其他要求:
- 所有键域必须以升序排序,这意味着在每个表必须有一个嵌套排序模式。
- 在每个表中选择键域的顺序必须与每个表中嵌套的排序模式顺序相同。
- 两个表都必须使用相同的嵌套排序模式。
其他有关合并的信息
下表提供了有关合并的附加信息。
| 功能区域 | 详情 |
|---|---|
| 输出表的大小 | 所生成组合表中的记录数是被合并的两个表中的记录数之和。 |
| 记录与域 | 您只能合并整个记录。 |
| 键域的数据类型 |
只有字符域或字符计算域可以是键域。 提示 您可以使用 Analytics 函数将数值或日期时间域转换为字符域。要了解更多信息,请参考调整域。 |
| 完全相同的键域值 | 如果主表和辅助表记录中的键域值完全相同,则在进行排序时,主表记录位于辅助表记录的上方。 |
| 相应域的名称 | 主表和辅助表中的相应域无需具有完全相同的名称。在生成的组合表中,主表域名处于优先级别。 |
| 相应的计算域 | 如果有相应的计算域,则主表的计算域中的表达式优先于辅助表中的表达式。 |
| 性能提示 | 当合并两个具有不同大小的表时,将较大的表作为主表可减少处理工作。 |
| 索引而不是排序 |
主键域和辅助键域都可以按升序索引而不是排序。相对于排序而言,索引具有性能方面的优势。 只能从命令行或在脚本中向辅助表应用索引。 |
| 范围参数 | “如果”、“当”、“前”和“后”等限制记录处理范围的参数仅适用于主表。 |
| 表的位置 | 为了进行合并,表必须处于同一个 Analytics 项目中。服务器表必须位于同一服务器上,并且必须使用相同的服务器配置文件进行访问。不能将本地表与服务器表合并。 |