功能:
分组聚合,相当于SQL的GROUP BY +聚合函数。
语法:
[汇总 {[求值聚合算法] [<被聚合的计算式>] [用] [条件 <过滤条件>] [命名 <新列名>]}] [分组 {[<分组计算式>] [命名 <新列名>]}] //一次聚合
[汇总 {[求记录聚合算法] [<被聚合的计算式>] [求值聚合算法] [<被聚合的计算式>] [用] [条件 <过滤条件>] [命名 <新列名>]}] [分组 {[<分组计算式>] [命名 <新列名>]}] //两次聚合
一次聚合:对一组汇总参数执行一次求值聚合,将多条记录变为单值。支持的聚合算法:首位、末位、合计、最大、最小、计数、唯一计数、平均、连结。
两次聚合:对一组汇总参数执行两次聚合,类似 SQL 的 KEEP 函数。
第一次是记录聚合,将多条记录变为一条或多条同值记录,支持的聚合算法:最大者、最小者;
第二次是求值聚合,对第一次的结果执行求值聚合(合计、平均等),得到最终单值;
例如【订单金额最大的记录的金额合计】,第一次找出金额最大的记录,可能是多条,第二次对这些记录求金额合计。
汇总功能的参数由汇总和分组这两部分组成,聚合参数在分组参数之前。
Ø 一次聚合参数介绍
每组5个参数。
参数:求值聚合算法
对组内数据进行聚合,求出单个数值的固定算法。
必填,省略参数名。枚举类型,枚举值:首位、末位、合计、最大、最小、计数、唯一计数、平均、连结。
参数:被聚合的计算式
聚合针对的字段或表达式。
必填,省略参数名。
示例:
汇总 最大 SALARY 最小 SALARY // 计算EMPLOYEE表SALARY字段的最大值和最小值,结果列由系统自动命名,结果如下:
|
col_1 |
col_2 |
|
16000 |
3000 |
参数: [用]
仅当聚合算法为"连结"时,指定分隔符。
可选,不可参数名,缺省值是空串""。
示例:
汇总 连结 NAME; 用 ","; 命名 员工列表; 分组 DEPT //按部门分组,将同一部门的员工姓名用逗号连结成一个字符串,写入新列【员工列表】,结果如下:

参数:条件 <过滤条件>
聚合之前可先过滤组内记录。
可选,不可省略参数名。
示例:
汇总 最大 SALARY; 条件 (DEPT="HR") //过滤出符合条件式DEPT="HR"的记录,再计算SALARY的最大值。
参数:命名 <新列名>
给汇总结果列命名,缺省由系统自动命名。
可选,不可省略参数名。
示例:
汇总 最大 SALARY 命名 工资最高 最小 SALARY 命名 工资最低 // 计算EMPLOYEE表SALARY字段的最大值和最小值,结果如下:
|
工资最高 |
工资最低 |
|
16000 |
3000 |
Ø 两次聚合参数介绍
每组7个参数。
参数:求记录聚合算法
对组内数据进行聚合,求出单条记录或同值的多条记录的固定算法。
必填,省略参数名,枚举类型,枚举值:最大者、最小者。本参数必须和参数被聚合的计算式、求值聚合算法一起用。
参数:被聚合的计算式
第一次聚合针对的字段或表达式。
必填,省略参数名。
参数:求值聚合算法
必填,省略参数名。枚举类型,枚举值:首位、末位、合计、最大、最小、计数、唯一计数、平均、连结。
参数:被聚合的计算式
第二次聚合针对的字段或表达式。
必填,省略参数名。
示例:
汇总 最大 HIREDATE 命名 最早入职日期 最大 SALARY 命名 最高公资, 平均 SALARY 命名 工资平均值 //第一次聚合找出 HIREDATE 最大的记录(可能多条),第二次对这些记录求 SALARY 的最大值;同时计算全表的SALARY平均值,返回结果如下:
|
最早入职日期 |
最高公资 |
工资平均值 |
|
2011-03-01 |
16000 |
3697500 |
参数:[用] [条件 <过滤条件>] [命名 <新列名>]
这三个参数与上面一次聚合中的用法相同。
Ø 分组部分参数介绍
参数:分组计算式
分组依据的字段或表达式。
必填,省略参数名。
示例:
汇总 最大 SALARY, 最小 SALARY; 分组 DEPT,GENDER //将EMPLOYEE表按部门、性别分组,求各组SALARY字段的最大值和最小值,结果如下:
|
DEPT |
GENDER |
col_1 |
col_2 |
|
Administration |
F |
16000 |
16000 |
|
Administration |
M |
12000 |
5000 |
|
Finance |
F |
11000 |
5000 |
|
Finance |
M |
11000 |
5000 |
|
HR |
F |
10000 |
3000 |
|
HR |
M |
12000 |
5000 |
|
Marketing |
F |
16000 |
4000 |
|
Marketing |
M |
12000 |
5000 |
|
Production |
F |
12000 |
3000 |
|
Production |
M |
13000 |
5000 |
|
R&D |
F |
16000 |
5000 |
|
R&D |
M |
16000 |
5000 |
|
Sales |
F |
15000 |
4000 |
|
Sales |
M |
12000 |
3000 |
|
Technology |
F |
13000 |
5000 |
|
Technology |
M |
10000 |
5000 |
参数:命名 <新列名>
给分组列命名。
可选,不可省略参数名。
示例:
汇总 连结 NAME; 用 ","; 命名 员工列表; 分组 DEPT 命名 部门名称 //按部门分组,将同一部门的员工姓名用逗号连结成一个字符串,写入新列【员工列表】,并将分组列DEPT命名为【部门名称】,结果如下:
