groupn()

阅读(2800) 标签: 分组,

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

cs.groupn(x;C)

描述:

将游标记录分组后,推入管道序列中的管道。

语法:

cs.groupn(x;C)

备注:

cs游标记录根据x分组后,推入管道序列C中的管道,结果返回原游标cs

参数:

cs

游标记录。

x

分组表达式。

C

管道序列。

返回值:

游标

示例:

 

A

 

1

=demo.cursor("select NAME,GENDER,DEPT,BIRTHDAY from EMPLOYEE")

 

2

=channel()

创建管道。

3

=channel()

创建管道。

4

=A1.groupn(if(GENDER=="F",1,2);[A2,A3])

将游标记录分组,GENDER值为F为一组推送到管道A2中,其余的记录分为另一组推送到管道A3中。

5

=A2.fetch()

保留管道当前数据。

6

=A3.fetch()

保留管道当前数据。

7

=A1.fetch()

 

8

=A2.result()

获取管道A2计算结果:

9

=A3.result()

获取管道A3计算结果:

ch.groupn(x;C)

描述:

将管道中的记录分组后,推入管道序列中的管道。

语法:

ch.groupn(x;C)

备注:

ch管道中的记录根据x分组后,推入管道序列C中的管道。

参数:

ch

管道。

x

分组表达式。

C

管道序列。

返回值:

管道

示例:

 

A

 

1

=demo.cursor("select NAME,GENDER,DEPT,BIRTHDAY from EMPLOYEE")

 

2

=channel(A1)

将游标记录推入管道,结果返回管道。

3

=channel()

创建管道。

4

=channel()

创建管道。

5

=A2.groupn(if(GENDER=="F",1,2);[A3,A4])

将管道A2中的记录分组,GENDER值为F为一组推送到管道A3中,其余的记录分为另一组推送到管道A4中。

6

=A3.fetch()

A3管道附加结果集函数ch.fetch(),保留管道A3的当前数据。

7

=A4.fetch()

A4管道附加结果集函数ch.fetch(),保留管道A4的当前数据。

8

=A1.fetch()

 

9

=A3.result()

获取管道A3计算结果:

10

=A4.result()

获取管道A4计算结果:

cs.groupn(x;F)

描述:

游标附加记录分组动作后返回原游标,并把分组子集写入集文件。

语法:

cs.groupn(x;F)

备注:

游标cs附加计算,cs的记录根据x分组,分组子集分别写入集文件序列F中,返回原游标cs

该函数属于延迟计算函数。

参数:

cs

游标。

x

分组表达式。

F

集文件对象序列。

返回值:

游标

示例:

 

A

 

1

=demo.cursor("select NAME,GENDER,DEPT,BIRTHDAY from EMPLOYEE")

返回游标。

2

=[file("f_dept.btx"),file("m_dept.btx")]

集文件对象序列。

3

=A1.groupn(if(GENDER=="F",1,2);A2)

游标A1附加计算,将GENDER值为F的记录分到第1组,其余的记录分到第2组,并将分组子集写入到对应顺序的集文件中,返回A1游标。

4

=A1.skip()

A1游标执行取数动作后,才会真正写出集文件。

T.groupn(x;F)

描述:

虚表中定义记录分组操作,将分组子集写入集文件。

语法:

T.groupn(x;F)

备注:

虚表T中定义计算,T的记录根据x分组,将分组子集分别写入集文件序列F中,返回新虚表。

参数:

T

虚表。

x

分组表达式。

F

集文件对象序列

返回值:

虚表

示例:

 

A

 

1

=create(file).record(["empAll.ctx"])

 

2

=pseudo(A1)

由组表生成虚表。

3

=[file("f_dept.btx"),file("m_dept.btx")]

返回集文件对象序列。

4

=A2.groupn(if(GENDER=="F",1,2);A3)

虚表A2中定义计算,将GENDER值为F的记录分到第1组,其余的记录分到第2组,并将分组子集写入到对应的集文件中。

5

=A4.cursor().fetch()

虚表A4执行取数操作,此时才会真正写出集文件。