news()

阅读(920) 标签: news,

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

A.news( X;xi:Fi,… )

描述:

计算序表/排列的字段值合并生成新序表/排列。

语法:

A.news(X;xi:Fi,…)

备注:

根据序表/排列A,计算排列X后把计算后的字段合并到一个新的序表/排列,Fi为新字段名,xi为计算结果Fi省略自动识别。当参数xi使用#i时,表示第i列,此时使用原列名。

参数:

A

序表/排列

X

排列

xi

表达式,结果为字段值,xi中的~针对X而非A#时表示用序号定位。

Fi

新序表/排列的字段名,省略则自动识别

返回值:

新序表/排列

示例:

 

A

 

1

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

 

2

=A1.group(GENDER;~:group,~.avg(SALARY):avg)

针对GENDER做分组

3

=A2.news(group;EID,NAME,GENDER,#3:surname, age(~.BIRTHDAY):age,SALARY+50:salary,A2.avg:AvgSalary)

A2是一个分组,针对每组计算字段值生成序表然后合并成一个新序表

相关概念:

cs.new()

ch.news()

描述:

计算管道内记录的字段值合并到原管道

语法:

ch.news(X;xi:Fi,…)

备注:

根据管道ch,计算排列X后把计算后的字段合并到原管道,Fi为新字段名,xi为计算结果Fi省略自动识别。

该函数属于附加计算动作。

参数:

ch

管道

X

排列

xi

表达式,结果为字段值,xi中的~针对X而非A#时表示用序号定位。

Fi

cs的字段名,省略则自动识别

返回值:

管道ch

示例:

 

A

 

1

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

 

2

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

 

3

=channel()

创建管道

4

=A2.group(GENDER;~:group)

针对GENDER做分组

5

=A1.groupx(GENDER;avg(SALARY):avg)

针对GENDER做分组

6

=A5.join(GENDER,A4:GENDER,group)

 

7

=A3.news(group;EID,NAME,GENDER,#3:surname,age(~.BIRTHDAY):age,SALARY+50: salary,avg:AvgSalary)

A6是一个分组,针对每组计算字段值,最后合并到管道A3

8

=A3.fetch()

保留管道当前数据

9

=A6.push(A3)

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

10

=A6.fetch()

A6执行fetch()时程序才会执行管道中的计算,游标中的数据才真正被推送到管道。

11

=A3.result()

cs.news()

描述:

计算游标字段值合并到原游标

语法:

cs.news(X;xi:Fi,…)

备注:

根据游标cs,把排列X计算后的字段合并到原游标,Fi为新字段名,xi为计算结果Fi省略自动识别。

参数:

cs

游标

X

排列

xi

表达式,结果为字段值,xi中的~针对X而非A#时表示用序号定位。

Fi

cs的字段名,省略则自动识别

返回值:

原游标cs

示例:

 

A

 

1

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

 

2

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

 

3

=A2.group(GENDER;~:group)

针对GENDER做分组

4

=A1.groupx(GENDER;avg(SALARY):avg)

针对GENDER做分组

5

=A4.join(GENDER,A3:GENDER,group)

 

6

=A5.news(group;EID,NAME,GENDER,#3:surname,age(~.BIRTHDAY):age,SALARY+50: salary,avg:AvgSalary)

A4是一个分组,针对每组计算字段值生成游标然后合并成一个新游标

7

=A6.fetch()

相关概念:

A.news(X;xi:Fi,…)