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

要将命令结果发送到的位置:

  • 屏幕 – 在 Analytics 显示区域中显示结果

    提示

    您可以单击显示区域中的任何链接结果值以向下追溯到源表中的关联记录。

  • 表名将结果保存到一个 Analytics 表

    请将表名指定为具有 .FIL 文件扩展名的带引号的字符串。例如:TO "Output.FIL"

    默认情况下,表数据文件 (.FIL) 被保存到包含 Analytics 项目的文件夹。

    请使用绝对或相对文件路径将该数据文件保存到另外的现有文件夹:

    • TO "C:\Output.FIL"
    • TO "Results\Output.FIL"

    说明

    表名称被限制为不超过 64 个字母数字字符(不包括 .FIL 扩展名)。该名称可以包括下划线字符 ( _ ),但不能包括其他特殊字符或任何空格。该名称不能以数字开头。

  • GRAPH 在 Analytics 显示区域中的图表中显示结果
  • PRINT 将结果发送到默认打印机
LOCAL

可选

请将输出文件保存在与 Analytics 项目相同的位置。

说明

仅当针对服务器表运行该命令并且输出文件为 Analytics 表时适用。

LOCAL 参数必须紧跟在 TO 参数后面。

IF 测试

可选

一个条件表达式,它必须为真以便处理每个记录。仅对满足条件的那些记录执行该命令。

说明

在应用任何范围参数(WHILE、FIRST、NEXT)之后,仅针对表中的剩余记录评估 IF 条件。

WHILE 测试

可选

一个条件表达式,它必须为真以便处理每个记录。该命令被一直执行到条件的计算结果为假或者到达表的末尾为止。

说明

如果您将 WHILE 与 FIRST 或 NEXT 结合使用,请在达到一个限制时立即记下处理步骤。

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_源表中的小计域名

最大值 + 源表中的小计备用列标题