CLASSIFY 命令
概念信息
根据字符域或数值域中的相同值对记录进行分组。统计每个组中的记录数,并且小计每个组的指定数值域。
语法
CLASSIFY <ON> 键域 <SUBTOTAL 数值域 <...n>|SUBTOTAL ALL <EXCLUDE 数值域 <...n>>> <INTERVALS 数字> <SUPPRESS> <TO {SCREEN|表名称|GRAPH|PRINT}> <LOCAL> <IF 测试> <WHILE 测试> <FIRST 范围|NEXT 范围> <HEADER 页眉文本> <FOOTER 页脚文本> <KEY 拆分域> <OPEN> <APPEND> <STATISTICS>
参数
| 名称 | 描述 |
|---|---|
| ON 键域 |
要分类的字符或数值域。 最大键域长度是 2048 个字符。 如果您想要使用比 2048 个字符长的键域对表进行分类,则可以使用 SUMMARIZE 命令。它不限制键域长度。 |
| SUBTOTAL 数值域 <...n> | SUBTOTAL ALL 可选 |
要为每个组小计的一个或多个数值域或表达式。 多个域必需以空格分隔。指定 ALL 对表中的所有数值域进行小计。 |
| EXCLUDE 数值域 可选 |
仅在使用 SUBTOTAL ALL 时有效。 要从该命令中排除的一个或多个域。EXCLUDE 使您可以通过排除指定的域优化 SUBTOTAL ALL。 EXCLUDE 必须紧跟在 SUBTOTAL ALL 后面。例如: SUBTOTAL ALL EXCLUDE 域 1 域 2 |
| INTERVALS 数字 可选 |
输出结果中的最大组数。 如果要分类的域中的相同值集的数量超过指定的最大值,则从该列顶部开始使用值集。 超过最大值的值集被一起分组到一个名为“OTHER”的组中。 如果省略 INTERVALS,则为要分类的域中的每个相同值集创建一个组。 说明 此参数在 Analytics 用户接口中不可用,而只能作为脚本中的 ACLScript 语法或命令行的一部分使用。 |
| SUPPRESS 可选 |
说明 除非还指定了 INTERVALS,否则不能使用。SUPPRESS 在 Analytics 用户界面中不可用,而只能作为脚本中的 ACLScript 语法或命令行的一部分使用。 从命令输出中排除超过由 INTERVALS 指定的最大值的相同值集。 |
| TO SCREEN | 表名 | GRAPH | PRINT |
要将命令结果发送到的位置:
|
| LOCAL 可选 |
请将输出文件保存在与 Analytics 项目相同的位置。 说明 仅当针对服务器表运行该命令并且输出文件为 Analytics 表时适用。 LOCAL 参数必须紧跟在 TO 参数后面。 |
| IF 测试 可选 |
一个条件表达式,它必须为真以便处理每个记录。仅对满足条件的那些记录执行该命令。 说明 在应用任何范围参数(WHILE、FIRST、NEXT)之后,仅针对表中的剩余记录评估 IF 条件。 |
| WHILE 测试 可选 |
一个条件表达式,它必须为真以便处理每个记录。该命令被一直执行到条件的计算结果为假或者到达表的末尾为止。 说明 如果您将 WHILE 与 FIRST 或 NEXT 结合使用,请在达到一个限制时立即记下处理步骤。 |
| FIRST 范围 | NEXT 范围 可选 |
要处理的记录数:
请使用范围指定要处理的记录数。 如果您省略 FIRST 和 NEXT,则会默认处理所有记录。 |
| HEADER 头文本 可选 |
要在报告的每个页面的顶部插入的文本。 必须将头文本指定为带引号的字符串。该值将覆盖 Analytics HEADER 系统变量。 |
| FOOTER 页脚文本 可选 |
要在报告的每个页面底部插入的文本。 必须将尾文本指定为带引号的字符串。该值将覆盖 Analytics FOOTER 系统变量。 |
| KEY 中断域 可选 |
对小计计算进行分组的域或表达式。每当拆分域的值更改时计算小计。 拆分域必须是字符域或表达式。您只能指定一个域,但您可以使用一个包含多个域的表达式。 |
| OPEN 可选 |
在命令执行后打开该命令创建的表。仅当该命令创建输出表时有效。 |
| APPEND 可选 |
将命令输出附加到现有文件的末尾,而不是覆盖现有文件。 说明 您必须确保命令输出的结构和现有文件完全相同:
Analytics 将输出附加到现有文件,而无论其结构如何。如果输出的结构和现有文件不匹配,则可能生成混乱的、不完整的或不准确的数据。 |
| STATISTICS 可选 |
说明 除非同时指定了 SUBTOTAL,否则不能使用。 为所有 SUBTOTAL 域计算平均值、最小值和最大值。 |
示例
每个客户的交易总金额
您想要按客户编号 域对应收帐款表进行分类,并且小计交易金额域。输出结果被按客户分组,并且包括每个客户的交易总金额:
OPEN 应收账款
CLASSIFY ON 客户编号 SUBTOTAL 交易金额 TO "客户合计.FIL"
每个客户的合计、平均、最小和最大交易金额
与上一个示例一样,您想要按客户编号域对应收帐款表进行分类,并且小计交易金额域。
现在,您包括 STATISTICS 以计算每个客户的平均、最小和最大交易金额:
OPEN 应收账款
CLASSIFY ON 客户编号 SUBTOTAL 交易金额 TO "客户统计信息.FIL" STATISTICS
相同的发票金额
您需要识别在 应付账款交易 表中出现一次以上的发票金额。
为此,您按发票金额域对该表进行分类。输出结果被按发票金额进行分组,并且包含一个关联的计数,您可以使用该计数来识别任何出现一次以上的发票金额:
OPEN Ap_Trans
CLASSIFY ON 发票金额 TO "分组发票金额.FIL" OPEN
SET FILTER TO 计数 > 1
备注
有关此命令工作方式的详细信息,请参见对数据分类。
工作原理
CLASSIFY 对在某个字符或数值域中具有相同值的记录进行分组。
输出为每个组包含单个记录,并且包含对源表中属于该组的记录数的统计。
排序和 CLASSIFY
CLASSIFY 既可以处理排序的数据,也可以处理非排序的数据。输出被自动按升序排序。
自动生成的小计域和统计信息域的名称
如果您使用 STATISTICS 对一个或更多个 SUBTOTAL 域执行统计计算,并且将结果输出到一个 Analytics 表,则这些参数自动生成的域具有下列名称:
|
对自动生成的域的描述 |
输出表中的域名 |
输出表中的备用列标题(显示名称) |
|---|---|---|
|
小计域 |
源表中的小计域名 |
合计 + 源表中的小计备用列标题 |
|
平均值域 |
a_源表中的小计域名 |
平均值 + 源表中的小计备用列标题 |
|
最小值域 |
m_源表中的小计域名 |
最小值 + 源表中的小计备用列标题 |
|
最大值域 |
x_源表中的小计域名 |
最大值 + 源表中的小计备用列标题 |