常用函数介绍
select
函数说明:选出数据集某列中符合条件的数据,返回结果是一组数据的集合,并且相同数据不会合并。
语法:datasetName.select(colname,desc_exp,filter_exp,sort_exp,rootGroupExp)
参数说明: datasetName:数据集名称。 colname:要选择的字段列名/列号,也可以是表达式。 列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推。 desc_exp: 指定数据排序的顺序,true表示降序排列,false表示升序排列。 filter_exp: 数据过滤表达式。 sort_exp: 数据排序表达式。当此项为空时先检查desc_exp是否为空,如果为空,则不排序,否则使用select_exp排序。 rootGroupExp:是否root数据集表达式
示例: 例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,,sex==’1’) 从数据集ds1中选取性别为男性(‘1’)的name字段列的值,不排序。
例5:ds1.select(name,true,sex==’1’,id) 从数据集ds1中选取性别为男性(’1’)的name字段列的值并按id字段降序排列。
group
函数说明:选出数据集某列中符合条件的数据并分组。
语法:datasetName.group(colname,desc_exp,filter_exp,sort_exp,groupSortExp,groupDescExp,rootGroupExp)
参数说明: colname:要选择的字段列名/列号,也可以是表达式。列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推。 desc_exp:分组前记录的排序顺序,true为降序,false为升序。 filter_ex:过滤表达式。 sort_exp:分组前记录的排序依据表达式。 groupSortExp:分组后对组的排序表达式,一般是汇总运算的表达式,如组合计等。 groupDescExp:组排序顺序,true为升序,false为降序。 rootGroupExp:是否root数据集表达式。
示例:
例1:ds1.group(class) 返回数据集ds1中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,false,area in list(“华北”,”东北”,”华南”))从数据源ds1中选取地区属于“华北”“东北”“华南”的记录,按照class字段升序排列,然后根据class进行分组,并返回每组的class值组成的集合。
例5:ds1.group(class,true,sex==’1’,id) 从数据集ds1中选取性别为”1”的记录,按照id字段降序排列,然后根据class进行分组,并返回每组的class值组成的集合。
例6:ds1.group(省份,true,,,ds1.sum(工业产值),true) 对数据集ds1按照省份进行分组,分组后求出每组的sum(工业产值),然后按照这个汇总值对组进行升序排列。
注意:select、group函数 1、若没有中间参数,可以不写,但需要使用 , 占位,不能省略。 2、过滤条件中的判断需要使用双等号。 3、过滤条件可以为多个,用&&(||)或者and(or)连接。
select1
函数说明: 从数据集中按顺序检索到符合过滤条件的第一条记录,返回其selectExp值
语法: datasetName.select1(colname,filterExp,rootGroupExp)
参数说明: colname:要选择的字段列名/列号,,也可以是表达式。列号用#n表示,例如#0代表第0列,#1代表第1列,依此类推 filter_exp:过滤条件。 rootGroupExp:是否root数据集表达式
注意: 当对数据集运用过滤条件后确定只剩一条记录时,虽然select的运算结果一样,但是select1运算效率高,因为它只要找到符合条件的记录,就不继续检索了,而select要检索完所有的记录才返回。
示例:
例1:ds1.select1(name) 返回数据集ds1中第一条记录的name字段值
例2:ds1.select1(name,score>90) 从数据集ds1中检索出成绩大于90的记录,返回第一条记录的name字段值
注意:select1函数与select函数不同,没有desc_exp(排序)参数,不能排序。