本章节介绍cgroups ()函数的使用。
利用组表/复组表的预汇总文件计算分组汇总。
语法:
T.cgroups(Fi,…;y:Gi,…;w;f,…)
备注:
利用组表/复组表T的预汇总文件f,…计算分组汇总,结果返回以Fi,…为键的序表。
预汇总文件中的分组字段及聚合表达式与Fi、y完全一致时才能被使用。
参数:
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,根据字段DEPT对EID进行计数。 |
7 |
=file("cub2") |
预汇总文件对象。 |
8 |
=A2.cuboid(A7,DEPT,GENDER;avg(SALARY)) |
为组表生成预汇总文件cub2,根据字段DEPT、GENDER对SALARY求平均值。 |
9 |
=A2.cgroups(DEPT;count(EID):IdNum;;A5) |
利用预汇总文件cub1对组表进行分组汇总,返回结果如下:
|
10 |
=A2.cgroups(DEPT,GENDER;avg(SALARY):AvgSalary;;A5,A7) |
利用预汇总文件对组表进行分组汇总,由于A5中预汇总文件的分组字段与聚合表达式与A10中的Fi、y不一致,所以计算时并不会使用A5预汇总文件,而是使用了A7中的预汇总文件,返回结果如下:
|
11 |
=A2.cgroups(DEPT;avg(SALARY):AvgSalary,count(EID):IdNum;;A5,A7) |
A5、A7预汇总文件中的分组字段与聚合表达式与A11中的Fi、y均不一致,所以都没有被使用。 |