20.1 数据集函数

基于数据集来定义、求值的公式称为数据集函数。

数据集函数的一个重要特点就是函数的执行结果和它所在的单元格对其他单元格的依赖而有所不同。如果这个所在单元格所直接或者间接依赖的单元格,即依赖格也定义有数据集公式,并且数据集名相同,那么这个附属格的数据集公式的执行,要在依赖格中的定义的公式的分组或查询结果范围内执行。

Group

函数说明:
对指定的数据集数据按指定的条件进行分组,返回分组后的结果。
函数语法:
Group(ds_name,col_name|col_index[,filter[,order_exp]])
参数说明:

名称 数据类型 说明 是否必需
ds_name 字符串类型 数据集名称,常量需要用英文单引号包围,如’ds1’
col_name 字符串类型 字段名词
col_index 整数类型 字段在数据集中的索引值
filter 布尔类型 过滤条件,用{}包围
order_exp 字符串类型 排序表达式,包括两部分:排序字段和升降序,之间用空格分隔。其中asc表示升序;desc表示降序。例如:’sortFiled asc’。 可以指定多个排序列,用逗号分隔。如果没有指定排序字段,group函数在执行时会根据数据集数据的原始顺序分组,即对于每条数据,col_name所在列值与上一条相同则在一个分组内,不同则在新的分组。

返回值:
返回分组后“组”的集合。组内的每个值都是对应col_name 字段的值。注:在每个组可以进行进一步的group或者select操作。
示例:
取得城市的分组、取得字段序号为1的分组、得到辽宁省外的所有城市分组:

Group(‘ds1’, ‘city’)
Group(‘ds1’, 1)
Group(‘ds1’, ‘city’,{&get(‘ds1’, ‘region’)<> ‘辽宁’},‘city asc’)

GroupWithCriteria

函数说明:
对指定的数据集数据按自定义的条件要求逐个分组,返回分组后的结果。
函数语法:
groupWithCriteria(ds_name,groupName,groupCriterion,[groupName, groupCriterion, [...]])
参数说明:

名称 数据类型 说明 是否必需
ds_name 字符串类型 数据集名称,常量需要用英文单引号包围,如’ds1’
groupName 字符串类型 分组名称
groupCriterion 字符串类型 分组条件,使用英文 { } 括起来

返回值:
返回分组后“组”的集合。组内的每个值都是对应groupName字段的值。
示例:
取得辽宁省外的所有城市分组:

groupWithCriteria(‘ds1’, ‘city’,{&get(‘ds1’, ‘region’)<> ‘辽宁’})

Select

对指定的数据集数据按指定的条件进行查询,返回符合条件的所有行的集合。注:如果select函数所在的单元格依赖于另一个定义有Group函数的单元格,并且这两个函数的数据集名称相同,那么,select操作会在group的每个组内执行。
函数语法:
Select(ds_name,col_name|col_index [,filter[,order_exp]])
参数说明:

名称 数据类型 说明 是否必需
ds_name 字符串类型 数据集名称,常量需要用英文单引号包围,如’ds1’
col_name 字符串类型 字段名词
col_index 整数类型 字段在数据集中的索引值
filter 布尔类型 过滤条件,用{}包围
order_exp 字符串类型 排序表达式,包括两部分:排序字段和升降序,之间用空格分隔。其中asc表示升序;desc表示降序。例如:’sortFiled asc’。 可以指定多个排序列,用逗号分隔。

返回值:
符合条件的行的集合,集合内每个记录的值都是对应col_name字段的值。注:在每个行可以进一步的get操作。
示例:
取得城市的集合、取得字段序号为1的集合、得到辽宁省外的所有城市集合:

Select(‘ds1’, ‘city’)
Select(‘ds1’, 0)
Select(‘ds1’, ‘city’,{&get(‘ds1’, ‘region’)<> ‘辽宁’},‘city asc’)

Get

从指定的数据集的当前行中获得某一列的数据值。定义get函数的单元格必须直接或者间接依赖于另一个定义有select函数或者group函数的单元格,并且这个函数的数据集名称要和get指定的数据集名称相同。
函数语法:
Get(ds_name,col_name|col_index)
参数说明:

名称 数据类型 说明 是否必需
ds_name 字符串类型 数据集名称,常量需要用英文单引号包围,如’ds1’
col_name 字符串类型 字段名词
col_index 整数类型 字段在数据集中的索引值

返回值:
符合条件的字段值。
示例:
得到数据源ds1的zip字段值:

Get(‘ds1’, ‘zip’)

Plot

函数说明:
和group相似,获得符合条件的分组。不同的是plot函数定义的是不规则分组,而group是按某列值的“相等分组”。所谓不规则分组,指的是用户定义了N个分组的关键点,根据这些点把数据分成N+1个组。
函数语法:
Plot(ds_name, col_name|col_index, filter, plot_keys)
参数说明:

名称 数据类型 说明 是否必需
ds_name 字符串类型 数据集名称,常量需要用英文单引号包围,如’ds1’
col_name 字符串类型 字段名词
col_index 整数类型 字段在数据集中的索引值
filter 布尔类型 过滤条件,用{}包围
plot_keys 数据集合 分组关键点的集合,通常可以用list函数,例:list(30,50,70)

返回值:
返回分组后“组”的集合。每个组的值就是col_name字段对应的值。注:在每个组可以进行进一步的group或者select操作。
示例:
对年龄字段指定分组点30、50、70,执行的结果是4个分组:分别为小于30的,大于等于30而小于50的,大于等于50而小于70,大于等于70的。

Plot(‘ds1’, ‘age’, null, list(30,50,70))

GroupWithKeys

函数说明:
根据指定的列值分组,用户指定分组对应列和期望获得的分组的值,得到这些值对应的分组。比如数据集中包括辽宁省所有城市,当前的统计只关注沈阳、大连、鞍山,并且就按照这个顺序排序(既不是升序也不是降续,同时可能数据集中并没有大连的数据),这时可以使用此函数。
函数语法:
GroupWithKeys(ds_name, col_name|col_index, filter, keys)
参数说明:

名称 数据类型 说明 是否必需
ds_name 字符串类型 数据集名称,常量需要用英文单引号包围,如’ds1’
col_name 字符串类型 字段名词
col_index 整数类型 字段在数据集中的索引值
filter 布尔类型 过滤条件,用{}包围
keys 字符串集合 分组关键点的集合,通常可以使用list函数list(‘辽宁’,’吉林’,’河北’)

返回值:
返回分组后“组”的集合。每个组的值就是keys参数指定的值。在每个组可以进行进一步的group或者select操作。
示例:
得到辽阳、沈阳、大连三个分组,并按此顺序排序:

GroupWithKeys(‘ds1’, ‘city’,null,list(‘辽阳’, ‘沈阳’, ‘大连’))

SelectFirstRow

函数说明:
一个特殊的数据集操作函数,它只返回结果集中的第一行。
函数语法:
SelectfirstRow(ds_name,col_name|col_index [,filter[,order_exp]])
参数说明:

名称 数据类型 说明 是否必需
ds_name 字符串类型 数据集名称,常量需要用英文单引号包围,如’ds1’
col_name 字符串类型 字段名词
col_index 整数类型 字段在数据集中的索引值
filter 布尔类型 过滤条件,用{}包围
order_exp 字符串类型 排序表达式,包括两部分:排序字段和升降序,之间用空格分隔。其中asc表示升序;desc表示降序。例如:’sortFiled asc’。 可以指定多个排序列,用逗号分隔。

返回值:
返回符合条件的指定字段的某一行的值。注:不是集合,也不代表一行信息。
示例:
取得大连所在行:

SelectFirstRow(‘ds1’, ‘zip’,{&get(‘ds1’, ‘city’)= ‘大连’},)

SelectFirstColumn

函数说明:
一个特殊的数据集操作函数,它只返回结果集中的第一行所对应的列的值。
函数语法:
SelectfirstColumn (ds_name,col_name|col_index [,filter[,order_exp]])
参数说明:

名称 数据类型 说明 是否必需
ds_name 字符串类型 数据集名称,常量需要用英文单引号包围,如’ds1’
col_name 字符串类型 字段名词
col_index 整数类型 字段在数据集中的索引值
col_index 整数类型 字段在数据集中的索引值
filter 布尔类型 过滤条件,用{}包围
order_exp 字符串类型 排序表达式,包括两部分:排序字段和升降序,之间用空格分隔。其中asc表示升序;desc表示降序。例如:’sortFiled asc’。 可以指定多个排序列,用逗号分隔。

返回值:
返回符合条件的某一行的指定字段的值。注:不是集合,也不代表一行信息。
示例:
取得大连的邮政编码:

SelectFirstColumn (‘ds1’, ‘zip’,{&get(‘ds1’, ‘city’)= ‘大连’},)

SumSelect

函数说明:
对指定的数据集数据按指定的条件进行查询,返回符合条件的所有行的数值型数据的算术求和。注:如果sumselect函数所在的单元格依赖于另一个定义有Group函数的单元格,并且这两个函数的数据集名称相同,那么,sumselect操作会在group的每个组内执行。
函数语法:
SumSelect(ds_name,col_name|col_index [,filter])
参数说明:

名称 数据类型 说明 是否必需
ds_name 字符串类型 数据集名称,常量需要用英文单引号包围,如’ds1’
col_name 字符串类型 字段名词
col_index 整数类型 字段在数据集中的索引值
filter 布尔类型 过滤条件,用{}包围

返回值:
符合条件的行的数值型数据的算术总和。
示例:
取得所有工资求和:

Sumselect(‘ds1’, ‘salary’)
Sumselect(‘ds1’, 0)

GroupByRow

函数说明:
与group相似,获得符合条件的分组。不同的是GroupByRow函数定义的是按照指定行数分组。
函数语法:
GroupByRow(ds_name, col_name|col_index, filter, rowNum)
参数说明:

名称 数据类型 说明 是否必需
ds_name 字符串类型 要从中选择数据的数据集,使用英文单引号括起来。
col_name 字符串类型 要选择的字段名称,使用英文单引号括起来。
col_index 字符串类型 字段在数据集中的索引值。
filter 布尔类型 过滤条件,使用英文 { } 括起来。
rowNum 整数类型 分组的行数

返回值:
分组后“组”的集合,在每个组可以进行进一步的group或者select操作。
示例:
将数据按照4行分组:

groupbyrow('ds1', 'empid',null,4)

Call

函数说明:
触发指定的数据集但不返回结果,用于数据的准备工作,主要应用场景是调用不返回结果的存储过程或SAP主数据集数据的准备。
函数语法:
Call(DataSetName)
参数说明:

名称 数据类型 说明 是否必需
DataSetName 字符串 调用数据集的名称

返回值:
空值。
示例:
触发数据集ds1

Call ('ds1')

results matching ""

    No results matching ""

    results matching ""

      No results matching ""