为数据表指定键列
在您需要对数据表中的所有行进行唯一标识时可使用键列(或主键)。如果您希望能在保存文件时在曾经活跃的未聚合图表中重新应用标记,或者希望在重新打开分析文件时能再次应用任意指定的标签或书签,或者希望能在数据表中替换特定值,则应指定键列。但是,无法保证能够始终再次应用某一选择,即便指定了键列,因为选择图表项还可能包含对除键列之外其他列的引用。
关于此任务
例如,对于当前分析中带有标签或标记的每个行,指定列的值会记录在保存的分析文件中,当再次打开该分析文件时,符合这些条件的行会再次附加标签或标记。这意味着,如果已被添加到数据表的某一新行也符合附加标签或标记的条件,那么标签或标记并不是唯一的,因而无效。重新打开分析时无论是新增行还是已附加标签或标记的原始行,均不会收到任何标签或标记。但是,即使键列不再是唯一的,“替换特定值”操作也会替换所有匹配行的值。除非转换已配置为忽略警告,您会在数据画布中收到有关非唯一键的通知。
开始之前
过程
示例:为客户数据表添加键列
在分析来自不同客户(购买者)的事务的数据表中,客户的姓名有时是相同的,即使他们是不同的人。要唯一标识每位客户,您可能需要将客户的姓名和地址或地区指定为键列。
当您打开“键列”对话框时,您可能只会在“可用列”列表中看到建议的列,但却可以使用“将可用列数限制为”列表来帮助您找到要使用的列。
此列表中可以提供三个不同的选项:
- 建议的列
列出包含 Integer/LongInteger 或 String 数据类型且所有行具有唯一值的列(如果提供)。这些列可能适用于确定每个行的唯一标识符,但您的数据表中可能有更合适的其他列。例如,如果您有一个包含事务编号的列,它可能适合唯一标识特定事务,但不适合查找唯一购买者。
- 具有适当数据类型的列
此选项仅显示包含 Integer/LongInteger 或 String 数据类型的列,因为这些列更有可能提供唯一标识符。即使某个列的所有行不具有唯一值,多个列(例如“名”和“姓”,或“姓名”和“地址”)的组合也足以提供唯一标识。
- 所有列
此选项将显示数据表中的所有列。您也许可以使用数据表中其他类型的列(例如“日期”列)来唯一标识行。
您还可以更改“隐藏对替换值无效的列”复选框,以查找更多或更少的列。
直接从可视化表中使用“替换特定值”转换时,用来保留标记、标签和书签的有效键列对应的某些列会变为无效。这适用于在展开的“分析中的数据”浮出控件的列视图中使用列转换进行了修改的任何列(即在最终数据表中完成列修改时)。选择此复选框时,将导致“替换值”的键变得无效的所有列都会被隐藏。
下图中已添加三列,以唯一标识此数据表中的每个购买者。