本章介绍groupi()函数的多种用法。
描述:
为填报表的多层维生成序列。
语法:
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的值取自GENDER为F时STATE的去重值。 DEPT的第一个子序列[Marketing,Sales]取自GENDER为F,STATE为Alabama时DEPT的去重值,NAME的第一个子序列[Lauren]取自GENDER为F,STATE为Alabama,DEPT为Marketing时NAME的去重值。
|
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预览结果为: