ch.groupx()

阅读(364) 标签: 管道, 有序记录, 分组,

描述:

针对管道中的记录分组并返回管道

语法:

ch.groupx(x:F,…;y:G…)

备注:

按照x分组后,形成以F,...G,…为字段的管道,并按分组字段x排序,F字段值为每一组第一条记录的x字段值,G字段值为对每一组进行y操作后的结果。ych的聚合函数。该函数为结果集函数。

选项:

@n

x取值为分组序号,可直接定位

参数:

ch

管道

x

分组表达式

F

结果序表的字段名

y

聚合函数,仅支持sum/count/max/min/top/iterate,使用iterate(x,a;Gi,…)时不能有参数Gi

G

结果序表中的汇总字段名

返回值:

管道

示例:

 

A

 

1

=demo.cursor("select * from EMPLOYEE ")

 

2

=channel()

创建管道

3

=channel()

创建管道

4

=A1.push(A2,A3)

将游标A1中的数据推送到管道A2A3,此时数据不会立即被推送到管道。

5

=A2.groupx(DEPT:dept;sum(SALARY):TotalSalary)

指定字段DEPT分组,并按照指定字段排序

6

=A3.groupx@n(if(GENDER=="F",1,2):SubGroups;sum(SALARY):TotalSalary)

x取值为分组序号,GENDER等于“F”的分到第一组,否则分到第二组,并且每个组聚合

7

=A1.select(month(BIRTHDAY)==2)

 

8

=A7.fetch()

游标A7添加了计算。

9

=A2.result()

结果返回成游标

10

=A3.result()

结果返回成游标