函数说明:
从数据集中按顺序检索到符合过滤条件的所有记录,返回纪录的组,注意该函数不能返回具体值,函数只能用在附加数据集中
语法:
datasetName.filterCross(filterExp{,rootGroupExp})
参数说明:
filterExp 过滤条件
rootGroupExp 是否root数据集表达式
返回值:
返回行
示例:
例1:ds1.filterCross(name=="1")
返回数据集ds1中记录的name字段是"1"的所有行
例2:ds.filterCross(score>90)
从数据集ds1中检索出成绩大于90的记录
本函数与filter函数的唯一区别是:filter是拿当前行或者组的第一行与ds进行过滤,
而本函数则是拿当前的行或者组与ds进行过滤.
当过滤条件里用到的列是当前分组,或者列表中指定的列时,这两个函数运算的结果是相同的,这个时候要用filter.
建议尽量少用这个函数,因为当数据量大时,本函数的运算速度极其慢.
函数说明:
从数据集满足条件的记录集合中,选出第一条记录,
返回给定字段或表达式的值
语法:
datasetName.first(selectExp{,descExp{,filterExp{,sortExp{,rootGroupExp}}}})
参数说明:
selectExp 要选择的字段列,可以是字段列名/列号,也可以是表达式。
列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推
descExp 排序的顺序,true代表逆序,false代表顺序
filterExp 过滤条件表达式
sortExp 排序依据表达式
rootGroupExp 是否root数据集表达式
返回值:
数据类型不定,由selectExp的计算结果决定
举例:
例1:ds1.first(name,true,score>90,id)
从ds1数据集中选出成绩大于90的记录,按照id逆序排列,
返回第一条记录的name字段值
例2:ds1.first(name,true,,score)
对ds1数据集的所有记录按照成绩逆序排列,然后返回第一条记录的name字段值
例3:ds1.first(name) 返回数据集ds1中第一条记录的name字段值
函数说明:
根据分组表达式,从数据集中选出一组组集。
语法:
datasetName.group( <selectExp>, , <filterExp> )
//适用于不需要排序或数据集中已排好序
datasetName.group(selectExp{,descExp{,filterExp{,sortExp{,groupSortExp{,groupDescExp{,rootGroupExp}}}}}})
参数说明:
selectExp 选出的分组表达式,可以是字段列名/列号,也可以是表达式。
列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推
descExp 分组前记录的排序顺序,true为逆序,false为顺序
filterExp 过滤表达式
sortExp 分组前记录的排序依据表达式
groupSortExp 分组后对组的排序表达式,一般是汇总运算的表达式,如组合计等
groupDescExp 组排序顺序,true为逆序,false为顺序
rootGroupExp 是否root数据集表达式
返回值:
一组数据的集合,数据类型由selectExp的运算结果来决定
示例:
例1:ds1.group(class)
把数据集ds1中所有记录按照class字段进行分组,
并返回每组的class值组成的集合
例2:ds1.group(class, true )
把数据集ds1中所有记录按照class字段降序排列,然后根据class进行分组,
并返回每组的class值组成的集合
例3:ds1.group(class,false,sex=='1')
从数据源ds1中选取性别为"1"的记录,按照class字段升序排列,
然后根据class进行分组,并返回每组的class值组成的集合
例4:ds1.group(class, true, sex=='1', id )
从数据源ds1中选取性别为"1"的记录,按照id字段降序排列,
然后根据class进行分组,并返回每组的class值组成的集合
例5:ds1.group(省份,true,,,sum(工业产值),true)
对数据集ds1按照省份进行分组,分组后求出每组的sum(工业产值),
然后按照这个汇总值对组进行逆序排列
函数说明:
根据分组表达式,从数据集中选出一组组集。
语法:
datasetName.groupEx(selectExp{,filterExp{, "sort_exp1, desc_exp1{;sort_exp2, desc_exp2{;...}}"{,groupSortExp{
,groupDescExp{,rootGroupExp}}}}})
参数说明:
selectExp 选出的分组表达式,可以是字段列名/列号,也可以是表达式。
列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推
filterExp 过滤表达式
sort_exp1 数据排序表达式。按desc_exp1排序。
desc_exp1 指定数据排序的顺序,true表示降序排列,false表示升序排列。
sort_exp2 数据排序表达式。将sort_exp1相同的字段,按desc_exp2排序。
desc_exp2 指定数据排序的顺序,true表示降序排列,false表示升序排列。
......
groupSortExp 分组后对组的排序表达式,一般是汇总运算的表达式,如组合计等
groupDescExp 组排序顺序,true为逆序,false为顺序
rootGroupExp 是否root数据集表达式
返回值:
一组数据的集合,数据类型由selectExp的运算结果来决定
示例:
例1:ds1.groupEx(sex,,"grade,true;name")
从数据源ds1中选取grade字段列的值并降序排列,然后把name相同的按成绩升序排列,然后按sex字段分组
函数说明:
判断数据集中是否有该列名
语法:
datasetName.isfield( stringExp )
参数说明:
stringExp 待判断的列名表达式
返回值:
布尔型
举例:
例1:ds1.isfield("score") 返回true,表示ds1中含有score这个列名
函数说明:
从数据集满足条件的记录集合中,选出最后一条记录,返回给定字段或表达式的值
语法:
datasetName.last(selectExp{,descExp{,filterExp{,sortExp{,rootGroupExp}}}})
参数说明:
selectExp 要选择的字段列,可以是字段列名/列号,也可以是表达式。
列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推
descExp 排序的顺序,true代表逆序,false代表顺序
filterExp 过滤条件表达式
sortExp 排序依据表达式
rootGroupExp 是否root数据集表达式
返回值:
数据集中最后一条记录指定字段的值,数据类型由selectExp的运算结果决定
示例:
例1:ds1.last(name,true,,score)
将ds1数据集的记录按成绩逆序排列,并返回最后一条记录的name字段值
函数说明:
从数据集中,从满足条件的记录中,选出给定字段或表达式的最大值
语法:
datasetName.max(selectExp{,filterExp{,rootGroupExp}})
参数说明:
selectExp 需要获得最大值的字段或表达式
如果用列号,列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推
filterExp 过滤表达式
rootGroupExp 是否root数据集表达式
返回值:
集合中的最大值,数据类型不定,由selectExp的运算结果决定
示例:
例1:ds1.max(score) 获得数据集ds1中的score最大值
例2:ds1.max(score,sex=="1") 获得数据集ds1中sex="1"的记录中score最大值
函数说明:
从数据集中,从满足条件的记录中,选出给定字段或表达式的最小值
语法:
datasetName.min(selectExp{,filterExp{,rootGroupExp}})
参数说明:
selectExp 需要获得最小值的字段或表达式
如果用列号,列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推
filterExp 过滤表达式
rootGroupExp 是否root数据集表达式
返回值:
集合中的最大值,数据类型不定,由selectExp的运算结果决定
示例:
例1:ds1.min(score) 获得数据集ds1中的score最小值
例2:ds1.min(score,sex=="1") 获得数据集ds1中sex="1"的记录中score最小值
函数说明:
对每一条记录依次计算条件表达式,如果满足则把该条记录加入到相应的组里。如果有多个组满足,则这些组中都会
含有此条记录。如果都不满足并且有缺省值表达式,则把该条记录加入到缺醒组中。组值为以改组的第一条记录计算
结果表达式所得到的值。
语法:
ds.overlap({hasNullGroup{,termExp1,resultExp1{,term2,resultExp2{,...{,defaultExp}}}}})
参数说明:
hasNullGroup 布尔表达式,true返回空组,false不返回空组
termExp(n) 条件表达式
resultExp(n) 返回结果表达式
defaultExp 缺省值表达式,如果所有表达式结果都不满足,则返回本表达式计算结果
函数说明:
根据数据值段进行分组,俗称“按段分组”
语法:
datasetName.plot( valueExp, listExp{, filterExp{, eqExp{, ascExp{,rootGroupExp}}}} )
参数说明:
valueExp 用于分组的值表达式
ListExp 数据值段列表,同valueExp数据类型相同的数组,要求其中元素从小到大排列
filterExp 过滤表达式
eqExp 返回布尔值的表达式,缺省为false,表示与元素比较时不包含等于
ascExp 返回布尔值的表达式,缺省为true,表示listExp返回的数组按从小到大排,否则为从大到小排
rootGroupExp 是否root数据集表达式
特别说明:
ascExp为true(即listExp从小到大排列)时,eqExp为true时,与元素比较时采用<=,eqExp为false时,采用<;
ascExp为false(即listExp从大到小排列)时,eqExp为true时,与元素比较时采用>=,eqExp为false时,采用>
返回值:
整数组,代表记录按值段分组后组的顺序,如list(0,1,2,3)代表第一组,第二组,第三组,第四组
因此,定义完单元格数据值表达式后还需要定义显示值表达式,比如第一组代表不及格,第二组代表及格等等
示例:
例1:ds1.plot(成绩,list(60,80,90),,true,false) 返回值为list(0,1,2,3)
对数据集ds1的记录按成绩段进行分组,60分以下、60-80,80-90,90分以上等四组
同时定义显示值表达式为:map(list(0,1,2,3),list(不及格,及格,良好,优秀))
例2:ds1.plot(成绩,arg1,,true,false) 其中arg1为整数组,其值为list(60,70,80,90)
显示值表达式为:map(to(0,count(arg1)),arg2),其中arg2为字符串组,
其值为{"不及格","及格","中","良好","优秀"}
本例通过参数动态控制分组值段以及结果组的显示值
函数说明:
从数据集的当前行集中选取符合条件的记录
语法:
datasetName.select( <select_exp>{, desc_exp{, filter_exp{, sort_exp{,rootGroupExp}}}} )
datasetName.select( <select_exp>, , <filter_exp> )//适用于不需排序或数据集中已排好序
参数说明:
select_exp: 要选择的字段列名/列号,,也可以是表达式。
列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推
desc_exp: 指定数据排序的顺序,true表示降序排列,false表示升序排列。
filter_exp: 数据过滤表达式,如果全部选出,则此参数省略,仅用“,”占位。
sort_exp: 数据排序表达式。当此项为空时先检查desc_exp是否为空,如果为空,
则不排序,否则使用select_exp排序。
rootGroupExp 是否root数据集表达式
返回值:
一组数据的集合,数据类型由select_exp的运算结果决定
函数示例:
例1:ds1.select( name )
从数据源ds1中选取name字段列的所有值,不排序
例2:ds1.select( #2, true )
从数据源ds1中选取第二个字段列的所有值并降序排列
例3:ds1.select( name,false,sex=='1')
从数据源ds1中选取性别为男性('1')的name字段列的值并升序排列
例4:ds1.select( name, true, sex=='1', id )
从数据源ds1中选取性别为男性的name字段列的值并按id字段降序排列
函数说明:
从数据集中按顺序检索到符合过滤条件的第一条记录,返回其selectExp值
语法:
datasetName.select1(selectExp{,filterExp{,rootGroupExp}})
参数说明:
selectExp 要选择的字段列名/列号,,也可以是表达式。
列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推
filterExp 过滤条件
rootGroupExp 是否root数据集表达式
返回值:
数据类型不定,由selectExp的运算结果决定
特别说明:
当对数据集运用过滤条件后确定只剩一条记录时,虽然select
的运算结果一样,但是select1运算效率高,因为他只要找到符合条件的记录,
就不继续检索了,而select要检索完所有的记录才返回。
示例:
例1:ds1.select1(name)
返回数据集ds1中第一条记录的name字段值
例2:ds1.select1(name,score>90)
从数据集ds1中检索出成绩大于90的记录,返回第一条记录的name字段值
函数说明:
从数据集的当前行集中选取符合条件的记录
语法:
datasetName.selectEx( <select_exp>{filter_exp{, "sort_exp1, desc_exp1{;sort_exp2, desc_exp2{;...}}"{,rootGroupExp}}} )
参数说明:
select_exp 要选择的字段列名/列号,,也可以是表达式。
列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推
filter_exp 数据过滤表达式,如果全部选出,则此参数省略,仅用","占位。
sort_exp1 数据排序表达式。按desc_exp1排序。
desc_exp1 指定数据排序的顺序,true表示降序排列,false表示升序排列。
sort_exp2 数据排序表达式。将sort_exp1相同的字段,按desc_exp2排序。
desc_exp2 指定数据排序的顺序,true表示降序排列,false表示升序排列。
......
rootGroupExp 是否root数据集表达式
返回值:
一组数据的集合,数据类型由select_exp的运算结果决定
函数示例:
例1:ds1.selectEx( name,sex=='1',"name;grade,true")
从数据源ds1中选取性别为男性('1')的name字段列的值并升序排列,然后把姓名相同的按grade降序排列