cgroups()

阅读(3223) 标签: cgroups,

本章节介绍cgroups ()函数的使用。

T.cgroups(F i ,…;y:G i ,…;w;f,…)

描述:

利用组表/复组表的预汇总文件计算分组汇总。

语法:

T.cgroups(Fi,…;y:Gi,…;w;f,…)

备注:

利用组表/复组表T的预汇总文件f,…计算分组汇总,结果返回以Fi,…为键的序表。

预汇总文件中的分组字段及聚合表达式与Fiy完全一致时才能被使用。

参数:

T

组表/复组表。

Fi

分组字段。

y

聚合表达式。

Gi

汇总字段名称。

w

过滤条件,不能省略。

f

T的预汇总文件,多个f时在f,…中自动寻找合适的预汇总文件。

选项:

@m(…;n)

并行计算,参数n为并行数,缺省使用设计器中设置的最大并行数;第三方应用程序中集成使用时,缺省路数为raqsoftConfig.xml文件中配置的parallelNum的值。

返回值:

序表

示例:

 

A

 

1

=file("empcub.ctx")

 

2

=A1.create@y(#EID,NAME,GENDER,DEPT,SALARY)

创建组表。

3

=demo.query("select  EID,NAME,GENDER,DEPT,SALARY from employee ")

返回序表:

4

=A2.append(A3)

A3游标中的数据追加到组表中。

5

=file("cub1")

预汇总文件对象。

6

=A2.cuboid(A5,DEPT;count(EID))

为组表生成预汇总文件cub1,根据字段DEPTEID进行计数。

7

=file("cub2")

预汇总文件对象。

8

=A2.cuboid(A7,DEPT,GENDER;avg(SALARY))

为组表生成预汇总文件cub2,根据字段DEPTGENDERSALARY求平均值。

9

=A2.cgroups(DEPT;count(EID):IdNum;;A5)

利用预汇总文件cub1对组表进行分组汇总,返回结果如下:

10

=A2.cgroups(DEPT,GENDER;avg(SALARY):AvgSalary;;A5,A7)

利用预汇总文件对组表进行分组汇总,由于A5中预汇总文件的分组字段与聚合表达式与A10中的Fiy不一致,所以计算时并不会使用A5预汇总文件,而是使用了A7中的预汇总文件,返回结果如下:

11

=A2.cgroups(DEPT;avg(SALARY):AvgSalary,count(EID):IdNum;;A5,A7)

A5A7预汇总文件中的分组字段与聚合表达式与A11中的Fiy均不一致,所以都没有被使用。