描述:
针对集群游标中的记录分组。
语法:
cs.groups(x:F,…;y:G…;n)
备注:
针对集群游标中的记录分组。按分组字段排序,依次向结果集聚合。
按照x分组后,形成以F,...G,…为字段的新序表;新序表按分组表达式x排序,G字段值为对每一组执行聚合函数y后的结果。
选项:
@c |
分机独立执行,结果集拼成集群内表,保持游标分布,可用作集群维表。 |
参数:
cs |
集群游标记录。 |
x |
分组表达式,x:F省略表示针对全集聚合,此时“;”不可省略。 |
F |
结果序表的字段名。 |
y |
cs的聚合函数,仅支持sum/count/max/min/top/avg/iterate/concat/var,使用iterate(x,a;Gi,…)时不能有参数Gi。 |
G |
结果序表中的汇总字段名。 |
n |
最大分组数,超过n时停止执行,用于分组数非常大时,防止内存溢出。并且最后的分组数不是确切数n,可能会比n大一些。 |
返回值:
序表/集群内表
示例:
|
A |
|
1 |
=file("emp1.ctx","192.168.0.111:8281") |
emp1.ctx数据文件内容如下: |
2 |
=A1.open() |
打开集群组表。 |
3 |
=A2.cursor() |
返回集群游标。 |
4 |
=A3.groups(Dept:dept;count(Name):count) |
根据DEPT分组,然后聚合: |
|
A |
|
1 |
[192.168.0.110:8281,192.168.18.143:8281] |
|
2 |
=file("emp.ctx":[1,2], A1) |
|
3 |
=A2.open() |
打开集群组表。 |
4 |
=A3.cursor() |
获取集群游标。 |
5 |
=A4.groups(GENDER:gender;sum(SALARY):totalSalary) |
根据GENDER分组后再聚合,返回序表: |
6 |
=A3.cursor() |
|
7 |
=A6.groups@c(GENDER:gender;sum(SALARY):totalSalary).dup() |
|