排序记录
您可以按升序或降序序列顺序对记录排序,并将结果输出到完全重新排序新 Analytics 表中。输出到 Analytics 表是唯一的输出选项。
对记录进行排序是多个 Analytics 操作的先决条件。要了解更多信息,请参考 我应该执行显式排序还是使用预排序?
排序本身也可以是有用的解析操作,可让您发现模式和异常。
说明
制作记录索引是对它们排序的另一种方法,在某些情况下可能是更好的选择。要了解更多信息,请参考 我应该进行排序还是索引?
我应该输出整个记录还是只输出指定的域?
排序时,您可以选择在排序的输出表中包括整个记录或者只包括指定的域。每个选项都有相关的含义,如下所述。
您选择的选项还可能影响排序速度。要了解更多信息,请参考如何提高排序速度。
提示
如果您需要按域输出的某些特点,但是您需要整个记录,请按域输出并选择所有域。
| 输出类型 | 含义 |
|---|---|
| 记录 |
|
| 域 |
|
按多个键域排序
通过按多个键域(主键域、辅助键域等)排序,您可以使用一个键域对记录进行排序,或者创建嵌套排序方案。嵌套排序支持跨键域混用数据类型以及混用升序和降序。
示例
您想要按日期键域的升序对交易表进行排序,而在每个日期内按金额键域的降序进行排序。
下面的结果阐述了混用数据类型(日期时间和数值)以及升序和降序的嵌套排序。
|
日期域 (升序) |
金额域 (降序、嵌套) |
|---|---|
|
15 一月 2011 |
$2300.00 |
|
15 一月 2011 |
$1200.00 |
|
15 一月 2011 |
$600.00 |
|
16 一月 2011 |
$900.00 |
|
16 一月 2011 |
$100.00 |
|
17 一月 2011 |
$4700.00 |
|
17 一月 2011 |
$900.00 |
|
17 一月 2011 |
$500.00 |
如何提高排序速度
对包含数百万个记录的超大型表进行排序可能很费时间。排序需要占用大量系统资源,如果您同时在执行其他任务,则可能会减缓速度。
提高排序速度
两个选项可以提高排序速度:
- 输出域子集如果您只需要某个记录中包含的一部分数据,请不要将整个记录包括在排序的输出表中。请仅选择您需要的域,这在大多数情况下都会提高排序速度。
域子集在域总数中所占的百分比越小,性能的改善就越大。
- 增加可用于排序的内存您可以为排序操作分配特定数量的内存(最多可达到 2000 MB)。转到工具 > 选项 > 表 > 排序内存,或者使用 SET SORTMEMORY 命令。
其他建议
如果对大型表进行排序所需的时间对您而言仍然是一个问题,请考虑:
- 升级您的计算机硬件
- 创建一个脚本以便按计划在晚上对数据进行排序
我应该执行显式排序还是使用预排序?
在下列任一操作之前对记录进行排序是先决条件或建议的操作:
- 联接表
- 合并表
- 汇总(如果您希望将键域中的每个相同值集放在单个组中)
- 测试重复
- 测试间隔
所有上述操作都包括预排序选项,使您可以在执行操作的过程中包括对记录进行初始排序的操作。
如果您要对同一个表执行上述两个或更多个操作,则首先明确对该表进行排序而非反复使用预排序可能效率更高,当表包含大量记录时尤其如此。
验证所有源记录都在输出表中
如果在表中排序和输出所有记录,您可以为数值域设置控制总计,以验证所有记录实际上都已输出到新表中。
在表布局对话框中为域设置控制总计。在进行排序并输出记录后,在新表中选择来比较输入和输出控制总计。要了解更多信息,请参考定义一个物理域。
步骤
您可根据活动表中的一或多个关键字域对记录排序,并将结果输出到新的 Analytics 表中。您可以在排序的输出表中包括整个记录或者只包括指定的域。
说明
您至少需要被排序的文件大小 2.5 倍的空间,以便创建在排序过程中使用的临时文件。
- 在导航器中,打开您想要排序的表。
- 选择。
- 在主要选项卡上,执行以下操作之一:
- 从排序依据列表中选择要键域。
- 单击排序依据以选择键域或创建表达式。
提示
如果您单击排序依据,则可以通过单击排序箭头
,为输出结果中的一个或多个键域指定降序排序顺序 (默认排序顺序为升序)。
- 要输出整个记录或者只输出指定的域,请执行以下操作之一:
- 如果您想要在排序的输出表中包括整个记录,请让记录保持选定状态。
- 如果您希望只在排序的输出表中包括域的子集,请选择域。
- 如果选择域,请执行以下操作之一:
- 从其他域列表中选择相应的非键域。
- 单击其他域以选择非键域或创建一个表达式。
提示
您可以使用 Ctrl+单击选择多个不相邻的域,使用 Shift+单击选择多个相邻的域。
- 在到文本框中,指定输出表的名称。
- 在更多选项卡上:
- (可选)要指定只处理记录的一个子集,请选择范围面板中的选项之一。
- 单击确定。
“排序”对话框选项
下表提供了有关排序对话框中的选项的详细信息。
“主要”选项卡
| 选项 –“排序”对话框 | 描述 |
|---|---|
|
排序依据 |
指定要用来对表进行排序的键域。
说明 按逻辑域排序要求选择域列表中包括过滤器()。 关键字域指南:
|
|
记录 域 |
指定在排序的输出表中包括整个记录还是只包括域的子集。
如果您要包括一个或多个计算域:
如果您想要包括表关联的子表中的域,请:
您不能使用记录选项包括子表域。 |
|
其他域 |
如果您选择了域,请指定要包括在排序的输出表中的非键域。
说明 键域被自动包括在输出表中。当它们被指定为其他域时,它们被忽略。 键域作为一个整体出现在输出表中的其他域之前。 如果您想要从表关联的子表中选择域,请:
|
| 如果 |
(可选)使您可以创建一个条件以从处理范围中排除记录。 您可以在如果文本框中输入一个条件,或者单击如果来使用表达式生成器创建一个 IF 语句。 |
| 到 | 指定输出表的名称和位置。
无论将输出表保存到何处,打开项目时,如果该项目中还没有此表,则会将其添加到该项目中。 如果 Analytics 预填充了一个表名称,您可以接受预填充的名称或更改它。 |
| 本地 |
如果您被连接到服务器表,请指定在何处保存输出表。
|
| 使用输出表 | 指定包含输出结果的 Analytics 表在完成操作后是否自动打开。 |
“更多”选项卡
| 选项 –“排序”对话框 | 描述 |
|---|---|
| “范围”面板 | 指定对源表中的哪些记录进行处理:
说明 前或后选项中指定的记录数参考表中记录的物理或索引顺序,不考虑对视图进行过滤或快速排序的情况。不过,解析操作的结果与任何过滤相关。 如果对视图进行了快速排序,则后的行为类似于前。 |
| 附加到现有文件 |
指定将输出结果附加(添加)到现有 Analytics 表的末尾。 生成的组合表仍被视为未排序,因为排序的记录被附加到目标表的末尾,而没有考虑目标表中的任何现有排序顺序。
|
| 确定 | 执行操作。 如果覆盖提示出现,请选择合适的选项。 如果您想让附加选项显示出来,而实际上未显示,请单击否取消操作并参见将结果附加到 Analytics 表和文本文件。 |