SUMMARIZE 命令

概念信息

汇总数据

根据一个或多个字符、数值或日期时间域中的相同值对记录进行分组。统计每个组中的记录数,并且小计每个组的指定数值域。

语法

SUMMARIZE {ON 键域 <...n>|ON ALL <EXCLUDE 域名称 <...n>>} <SUBTOTAL 数值域<...n>|SUBTOTAL ALL <EXCLUDE 数值域 <...n>>> <OTHER  <...n>|OTHER ALL <EXCLUDE 域名称 <...n>>> <TO {SCREEN|表名称|PRINT}> <LOCAL> <IF 测试> <WHILE 测试> <FIRST 范围|NEXT 范围> <PRESORT> <APPEND> <OPEN> <HEADER 页眉文本> <FOOTER 页脚文本> <STATISTICS> <MODMEDQ> <STDEV> <CPERCENT> <ISOLOCALE 区域设置代码>

参数

名称 描述
ON 键域 <...n> | ON ALL

要汇总的一个或多个字符、数值或日期时间域。

  • ON 关键域使用指定的一个或多个域

    多个域必须使用空格分隔,并且可能是不同的数据类型。

    如果您按一个以上的域汇总,则域会被按照您列出它们的顺序汇总。如果您指定 PRESORT,则输出表的嵌套排序会遵循相同的顺序。

  • ON ALL 使用该表中的所有域

    如果您按所有域进行汇总,则这些域会被按照它们出现在表布局中的顺序汇总。如果您指定 PRESORT,则输出表的嵌套排序会遵循相同的顺序。

EXCLUDE 域名称

可选

仅在使用 ON ALL 汇总时有效。

要从该命令中排除的一个或多个域。EXCLUDE 使您可以通过排除指定的域优化 ON ALL。

EXCLUDE 必须紧跟在 ON ALL 后面。例如:

ON ALL EXCLUDE 域 1 域 2
SUBTOTAL 数值域 <...n> | SUBTOTAL ALL

可选

要为每个组小计的一个或多个数值域或表达式。

多个域必需以空格分隔。指定 ALL 对表中的所有数值域进行小计。

EXCLUDE 数值域

可选

仅在使用 SUBTOTAL ALL 时有效。

要从该命令中排除的一个或多个域。EXCLUDE 使您可以通过排除指定的域优化 SUBTOTAL ALL。

EXCLUDE 必须紧跟在 SUBTOTAL ALL 后面。例如:

SUBTOTAL ALL EXCLUDE 域 1 域 2
OTHER 域 <...n> | OTHER ALL

可选

要包括在输出中的一个或多个其他域。

  • OTHER 域 <...n> 包含指定的一个或多个域
  • OTHER ALL 包括该表中未被指定为键域或小计域的所有域

请只对那些为每个汇总组中的所有记录包含相同值的域使用 OTHER 参数。如果指定其包含的值对汇总组而言不同的域,则仅显示该组中的第一个记录的值,而这没有什么意义。

例如:

  • 按客户编号汇总表 一个适当的“其他域”是客户名称。通常,对于所有具有相同客户编号的记录而言,客户名称完全相同。
  • 按州汇总供应商表 一个不适当的“其他域”是城市。只有为每个州列出的第一个城市出现在输出中。在本实例中,更好的方法是同时使用州和城市域作为关键字域并按此顺序进行汇总。
EXCLUDE 域名称

可选

仅在使用 OTHER ALL 时有效。

要从该命令中排除的一个或多个域。EXCLUDE 使您可以通过排除指定的域优化 OTHER ALL。

EXCLUDE 必须紧跟在 OTHER ALL 后面。例如:

OTHER ALL EXCLUDE 域 1 域 2
TO SCREEN 表名称 | PRINT

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

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

    提示

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

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

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

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

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

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

    说明

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

  • PRINT 将结果发送到默认打印机
LOCAL

可选

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

说明

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

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

IF 测试

可选

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

说明

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

WHILE 测试

可选

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

说明

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

FIRST 范围 | NEXT 范围

可选

要处理的记录数:

  • FIRST 从第一个记录开始处理,直到达到指定的记录数为止
  • NEXT 从当前选定的记录开始处理,直到达到指定的记录数为止

请使用范围指定要处理的记录数。

如果您省略 FIRST 和 NEXT,则会默认处理所有记录。

PRESORT

可选

在执行该命令之前,请按键域对该表进行排序。

说明

在 GROUP 命令内部不可使用 PRESORT。

如果您使用 PRESORT

如果您使用 PRESORT,则输出会被排序,并且对于一个或多个键域中的每组相同值或相同值组合,都包含单个唯一组。

提示

如果输入表已经排序,则可以通过不指定 PRESORT 节省处理时间。

如果您不使用 PRESORT

如果您不使用 PRESORT,则输出结果使用输入表的排序顺序。

如果键域包含非顺序的相同值,则对于每组相同值或相同值组合,输出结果都包含一个以上的组。

说明

根据具体情况的不同,每组相同值或相同值组合对应于一个以上的组可能导致无法达到汇总目的。

APPEND

可选

将命令输出附加到现有文件的末尾,而不是覆盖现有文件。

说明

您必须确保命令输出的结构和现有文件完全相同:

  • 相同的域
  • 相同的域顺序
  • 匹配的域具有相同的长度
  • 匹配的域具有相同的数据类型

Analytics 将输出附加到现有文件,而无论其结构如何。如果输出的结构和现有文件不匹配,则可能生成混乱的、不完整的或不准确的数据。

OPEN

可选

在命令执行后打开该命令创建的表。仅当该命令创建输出表时有效。

HEADER 页眉文本

可选

要在报告的每个页面的顶部插入的文本。

必须将头文本指定为带引号的字符串。该值将覆盖 Analytics HEADER 系统变量。

FOOTER 页脚文本

可选

要在报告的每个页面底部插入的文本。

必须将尾文本指定为带引号的字符串。该值将覆盖 Analytics FOOTER 系统变量。

STATISTICS

可选

说明

除非同时指定了 SUBTOTAL,否则不能使用。

为所有 SUBTOTAL 域计算平均值、最小值和最大值。

MODMEDQ

可选

说明

除非同时指定了 SUBTOTAL,否则不能使用。

对于所有 SUBTOTAL 域,计算模式、中值、第一个四分位数值和第三个四分位数值。

STDEV

可选

说明

除非同时指定了 SUBTOTAL,否则不能使用。

对于所有 SUBTOTAL 域的合计值,计算标准偏差和百分比。

CPERCENT

可选

为每个组计算记录计数百分比。

ISOLOCALE

可选

说明

仅在 Unicode 版 Analytics 中可用。

采用语言_国家/地区格式的系统区域设置。例如,要使用加拿大法语,请输入 fr-ca

使用以下代码:

  • 语言 ISO 639 标准语言代码
  • 国家/地区 ISO 3166 标准国家/地区代码

    如果您未指定国家/地区代码,则使用该语言的默认国家/地区。

如果您不使用 ISOLOCALE,则会使用默认系统区域设置。

示例

每个客户的交易总金额

您按 Customer_Number 域汇总应收帐款表,并且小计 Trans_Amount 域。输出按客户分组,并且包括每个客户的交易总金额:

OPEN 应收账款
SUMMARIZE ON 客户编号 SUBTOTAL 交易金额 TO "客户合计.FIL" PRESORT

每个客户每个交易日期的交易总金额

您按 Customer_Number 域和 Trans_Date 域汇总应收帐款表。您对 Trans_Amount 域进行小计。

输出按客户分组,在每个客户内又按日期分组,并且包括每个客户在每个交易日期的交易总金额。

OPEN 应收账款
SUMMARIZE ON 客户编号 交易日期 SUBTOTAL 交易金额 TO "客户合计按日期.FIL" PRESORT

每个客户每个交易日期的总计、平均、最小和最大交易金额

您将 STATISTICS 添加到上一个示例中。

除了计算每个客户每个交易日期的交易金额小计以外,还会计算每个客户每个交易日期的平均、最小和最大交易金额:

OPEN 应收账款
SUMMARIZE ON 客户编号 交易日期 SUBTOTAL 交易金额 TO "按日期收集的客户统计信息.FIL" PRESORT STATISTICS

相同交易金额,相同日期

您按 Trans_Date 域和 Trans_Amount 域汇总信用卡交易表。

输出按日期进行分组,而在日期内则按金额分组。您可以使用关联的计数来识别具有相同金额和相同日期的交易:

OPEN CC_Trans
SUMMARIZE ON 交易日期 交易金额 TO "Transactions_by_date_amount.FIL" OPEN PRESORT
SET FILTER TO 计数 > 1

备注

有关此命令工作方式的详细信息,请参见汇总数据

工作原理

SUMMARIZE 对在一个域中具有相同值或者在多个域中具有相同值组合的记录进行分组。输出结果对每个组包含单个记录,并且包含对源表中属于该组的记录数的统计。

小计和统计:输出结果中的计算和域名称

您可使用一个或多个可选参数对您指定的任何 SUBTOTAL 域执行统计计算。在输出中,统计计算的结果按组进行细分:

可选参数 输出表中的备用列标题(显示名称) 输出表中的域名 对小计域执行的计算
SUBTOTAL Total + 小计备用列标题 小计域名 每个组的小计值
STATISTICS Average + 小计备用列标题

a_ 小计域名称

每个组的平均值

Minimum + 小计备用列标题

m_ 小计域名称

每个组的最小值

Maximum + 小计备用列标题

x_小计域名称

每个组的最大值

MODMEDQ

Median + 小计备用列标题

c_ 小计域名称

每个组的中值

  • 奇数编号的值集:中间值
  • 偶数编号的值集:中间两个值的均值

Mode + 小计备用列标题

o_ 小计域名称

每个组中最常出现的值

  • 如果没有任何值出现一次以上,则显示“不适用”
  • 如果出现次数相等,则显示最低值

Q25 + 小计备用列标题

q_ 小计域名称

每个组的第一个四分位数值(较低的四分位数值)

  • 结果是一个基于 Analytics 算法的内插值
  • 所产生的结果与 Microsoft Excel 中的 QUARTILE 和 QUARTILE.INC 函数相同

Q75 + 小计备用列标题

p_ 小计域名称

每个组的第三个四分位数值(较高的四分位数值)

  • 结果是一个基于 Analytics 算法的内插值
  • 所产生的结果与 Microsoft Excel 中的 QUARTILE 和 QUARTILE.INC 函数相同
STDEV

STDDEV + 小计备用列标题

d_ 小计域名称

每个组的标准偏差

% Field + 小计备用列标题

f_ 小计域名称

每个组的小计,表示为域合计的百分比

CPERCENT 计数百分比 COUNT_PERCENTAGE 属于每个组的源表记录的百分比

说明

不需要小计域