groupi()

阅读(1129) 标签: 分组, 填报表,

本章介绍groupi()函数的多种用法。

A.groupi(D i ,…)

描述:

为填报表的多层维生成序列。

语法:

A.groupi(Di,…) 

备注:

填报表中维度格多层扩展规则:填报表中某个维度格纵(横)扩展时,其右(下)边相邻(以其为主格的)维度格的维序列的成员仍是序列时,将该序列的序列也同时拆分到被跟随复制的格中,如果右(下)边相邻的仍是这样的维度格也仍继续处理,直到不是维度格或维序列不再是序列的序列为止。

当填报表中维度格为多层可扩展时,可使用此函数生成维序列,其中维序列的成员仍然为序列。Di为填报表的维。D1的列值为按照D1进行分组的去重序列。D2的列值为在D1的每组内再按照D2进行分组的去重序列。以此类推,Di的列值为在Di-1的每组内再按照Di进行分组的去重序列。

选项:

@o

假定A有序,相邻对比归并,结果集不再排序

参数:

A

序列

Di

填报表的维

返回值:

序列

示例:

 

 

A

 

1

=demo.query("select * from employee")

返回序表

2

=A1.groupi(GENDER,STATE,DEPT,NAME)

第一条记录中STATE的值取自GENDERFSTATE的去重值。

DEPT的第一个子序列[Marketing,Sales]取自GENDERFSTATEAlabamaDEPT的去重值,NAME的第一个子序列[Lauren]取自GENDERFSTATEAlabamaDEPTMarketingNAME的去重值。

3

=demo.query("select * from employee order by GENDER,STATE,DEPT")

返回序表,并按照字段GENDER,STATE,DEPT排序

4

=A3.groupi@o(GENDER,STATE,DEPT,NAME)

序表已有序,相邻对比归并,结果与A2相同,计算效率提高

例如,填报表中数据处理-数据来源的脚本如下:

 

A

1

=connect("demo")

2

=A1.query("select * from employee where EID <10")

3

=a=A2.groupi(GENDER,STATE,DEPT,NAME)

4

>A1.close()

 

填报表内容如下图:

填报表WEB预览结果为: