“计算字段函数说明”的版本间的差异

来自海致BDP帮助中心、帮助文档
跳转至: 导航搜索
第11行: 第11行:
  
 
===聚合函数===
 
===聚合函数===
利用聚合函数,你可以定义在进行聚合操作时,使用什么方式来处理被聚合的对象。
 
  
SUM<br/>
+
====BOL====
用法:SUM(表达式/数值字段)<br/>
+
<br/>
说明:返回表达式或数值字段所有值的合计,只适用于数值字段,空值不会计算<br/>
+
用法:BOL(日期字段,字段)
示例:SUM(销售额),返回“销售额”字段对应的所有非空值的总和
 
  
AVG<br/>
+
说明:期初计算,返回日期字段中起始时间的字段值,日期字段的起始时间受筛选器影响。
用法:AVG(表达式/数值字段)<br/>
 
说明:返回表达式或数值字段所有值的平均值,只适用于数值字段,空值不会计算<br/>
 
示例:AVG(销售额),返回“销售额”字段对应的所有非空值的平均值
 
  
MAX<br/>
+
示例:BOL([统计日期],[库存]),返回统计日期中起始日期的库存值
用法:MAX(表达式/数值字段)<br/>
 
说明:返回表达式或数值字段中的最大值,只适用于数值字段<br/>
 
示例:MAX(销售额),返回“销售额”字段对应值的最大值
 
  
MIN<br/>
+
====LTD====
用法:MAX(表达式/数值字段)<br/>
+
<br/>
说明:返回表达式或数值字段中的最小值,只适用于数值字段<br/>
+
用法:LTD(日期字段,字段)
示例:MIN(销售额),返回“销售额”字段对应值的最小值
 
  
COUNT<br/>
+
说明:期末计算,返回日期字段中截止时间的字段值,日期字段的截止时间受筛选器影响。
用法:COUNT(表达式/字段)<br/>
 
说明:返回表达式所有有效字段的数据条目数,空值不会计算<br/>
 
示例:COUNT(销售额),返回“销售额”字段对应的所有非空值的数据条目数
 
  
COUNT DISTINCT<br/>
+
示例:BOL([统计日期],[库存]),返回统计日期中截止日期的库存值
用法:COUNT(DISTINCT(表达式/字段))<br/>
 
说明:去重计数,返回表达式所有有效字段的不同数据条目数,空值不会计算<br/>
 
示例:COUNT(DISTINCT(销售额)),返回“销售额”字段对应的所有非空值的不同数据条目数
 
  
===数值函数===
+
====PERCENT====
不同于应用于多行数据的聚合函数,您可以使用数值函数查找同一行中多列数据中的最大值或最小值。
+
<br/>
 +
用法:PERCENT([数值字段],百分位)
  
ROW_MAX<br/>
+
说明:求数值类型字段的中位数和百分位数,传入参数为数值字段;第二个参数范围是0<p<1,例如0.1,0.25,0.75,0.95。
用法:ROW_MAX(表达式1/字段1,表达式2/字段2……)<br/>
 
说明:对比同行中各列的值,返回值最大的,可传入2~8个数值型参数<br/>
 
示例:ROW_MAX([部门1销售额],[部门2销售额]),返回该行中部门1销售额与部门1销售额两个字段中的最大值
 
  
ROW_MIN<br/>
+
示例:PERCENT([数学考试分数],0.5),返回考试分数的中位数。
用法:ROW_MIN(表达式1/字段1,表达式2/字段2……)<br/>
 
说明:对比同行中各列的值,返回值最小的,可传入2~8个数值型参数<br/>
 
示例:ROW_MIN([部门1销售额],[部门2销售额],345),返回该行中部门1销售额、部门1销售额两个字段以及值345中的最大值<br/>
 
  
===日期函数===
+
===日期和时间函数===
您可以使用日期函数获得您需要的日期结果。
 
  
MAX_DATE<br/>
+
====DATE-AFTER-MONTHS====
用法:MAX_DATE(日期字段)<br/>
+
<br/>
说明:返回该字段所有日期数据中最大值<br/>
+
用法:DATE-AFTER-MONTHS(日期字段,数值)
示例:MAX_DATE([登陆时间]),返回该字段中最大的日期
 
  
MIN_DATE<br/>
+
说明:返回某个日期在一个或多个自然月后/前的对应日期
用法:MIN_DATE(日期字段)<br/>
 
说明:返回该字段所有日期数据中最小值<br/>
 
示例:MIN_DATE([登陆时间]),返回该字段中离当前时间最远的日期
 
  
HOUR_DIFF<br/>
+
示例:DATE-AFTER-MONTHS([开学日期],1),返回开学日期后一个自然月的日期,如DATE-AFTER-MONTHS(“2016-01-20”, 1),返回”2016-02-20”
用法:HOUR_DIFF(日期字段1,日期字段2)<br/>
 
说明:返回两个日期相差的小时数,只允许传入日期型字段<br/>
 
示例:HOUR_DIFF([登陆时间],[离线时间] ),返回同一行上“登陆时间”至“离线时间”间隔小时数
 
  
MINUTE_DIFF<br/>
+
====DAY-OFF-WEEK====
用法:MINUTE_DIFF(日期字段1,日期字段2)<br/>
+
<br/>
说明:返回两个日期相差的分钟数,只允许传入日期型字段<br/>
+
用法:DAY-OFF-WEEK(日期字段[,类型])
示例:MINUTE_DIFF([登陆时间],[离线时间] ),返回同一行上“登陆时间”至“离线时间”间隔分钟数
 
  
DAY_DIFF<br/>
+
说明:返回该日期在一周中的第几天,如果需要返回“星期一“的格式,第二参数传入0
用法:DAY_DIFF(日期字段1,日期字段2)<br/>
 
说明:返回两个日期相差的天数,只允许传入日期型字段<br/>
 
示例:DAY_DIFF([离职日期],[入职日期] ),返回同一行上“离职日期”至“入职日期”间隔天数
 
  
MONTH_DIFF<br/>
+
示例:<br/>
用法:MONTH_DIFF(日期字段1,日期字段2)<br/>
+
A. DAY-OFF-WEEK( [下单时间]);DAY-OFF-WEEK( [‘2016-05-13’]),返回5;<br/>
说明:返回两个日期相差的月数,只允许传入日期型字段<br/>
+
B. DAY-OFF-WEEK( [下单时间],0);DAY-OFF-WEEK( [‘2016-05-13’],0),返回星期五;<br/>
示例:MONTH_DIFF([离职日期],[入职日期] ),返回同一行上“离职日期”至“入职日期”间隔月数
 
  
YEAR_DIFF<br/>
+
====SECOND_DIFF====
用法:YEAR_DIFF(日期字段1,日期字段2)<br/>
+
<br/>
说明:返回两个日期相差的年数,只允许传入日期型字段<br/>
+
用法:SECOND_DIFF(日期字段1,日期字段2)
示例:YEAR_DIFF([离职日期],[入职日期] ),返回同一行上“离职日期”至“入职日期”间隔年数
 
  
WEEK<br/>
+
说明:返回两个日期相差的秒数,只允许上传日期型的字段
用法:WEEK(日期字段)<br/>
 
说明:返回该日期在当年的第几周,只允许传入日期型字段<br/>
 
示例:WEEK([入职日期]),返回入职日期为该年的第几周
 
  
QUARTER<br/>
+
示例:SECOND_DIFF([登陆时间],[离线时间]),返回同一行上“登陆时间”至“离线时间”的间隔秒数。
用法:QUARTER(日期字段)<br/>
 
说明:返回该日期在当年的第几个季度,只允许传入日期型字段<br/>
 
示例:QUARTER([入职日期]),返回入职日期为该年的第几个季度
 
  
NOW<br/>
+
===字符串函数===
用法:NOW()<br/>
 
说明:返回当前系统时间,无需参数
 
  
FIRST_DAY_OF_MONTH<br/>
+
====STRING_SPLIT====
用法:FIRST_DAY_OF_MONTH(表达式1/字段1,表达式2/字段2)<br/>
+
<br/>
说明:返回某月第一天,函数参数为数值型字段,依次代表年,月<br/>
+
用法:STRING_SPLIT(表达式/字段,分隔符,序列值)
调用示例:FIRST_DAY_OF_MONTH(2015,1),返回“2015年1月1日 00:00:00”
 
  
LAST_DAY_OF_MONTH<br/>
+
说明:根据预设分隔符分割字符串后,返回拆分数组中指定序列的字符串
用法:LAST_DAY_OF_MONTH(表达式1/字段1,表达式2/字段2)<br/>
 
说明:返回某月最后一天,函数参数为数值型字段,依次代表年,月<br/>
 
调用示例:LAST_DAY_OF_MONTH(2015,1),返回“2015年1月31日 00:00:00”
 
  
WORK_DAY_OF_MONTH<br/>
+
示例:<br/>
用法:WORK_DAY_OF_MONTH(表达式1/字段1,表达式2/字段2)<br/>
+
A. STRING_SPLIT(“柱图,线图,雷达图”,”,”0),返回”柱图“;<br/>
说明:返回某月工作天数,函数参数为数值型字段,依次代表年,月<br/>
+
B. STRING_SPLIT(“柱图,线图,雷达图”,”,”1),返回”线图“;<br/>
调用示例:WORK_DAY_OF_MONTH(2015,1),返回31
 
  
YEAR<br/>
+
====TLD====
用法:YEAR(日期字段)<br/>
+
<br/>
说明:返回该日期对应的年份。只允许传入日期型字段<br/>
+
用法:TLD(合法的URL链接/字段)
示例:YEAR([下单时间]),返回该行“下单时间”字段对应的年份
 
  
MONTH<br/>
+
说明:返回合法URL链接的一级域名,注意需带协议部分,如http。对于不合法的链接均范围null。
用法:MONTH(日期字段)<br/>
 
说明:返回该日期对应的月份。只允许传入日期型字段<br/>
 
示例:MONTH([下单时间]),返回该行“下单时间”字段对应的年份
 
  
DAY<br/>
+
示例:TLD(“https://www.bdp.cn”),返回“bdp.cn”。
用法:DAY(日期字段)<br/>
 
说明:返回该日期对应的日的值。只允许传入日期型字段<br/>
 
示例:DAY([下单时间]),返回该行“下单时间”字段对应的日的值
 
  
HOUR<br/>
+
====TRIM====
用法:HOUR(日期字段)<br/>
+
<br/>
说明:返回该日期对应的小时的值。只允许传入日期型字段<br/>
+
用法:TRIM(表达式/字段)
示例:HOUR([下单时间]),返回该行“下单时间”字段对应的小时的值
 
  
TO_DATE<br/>
+
说明:去除表达式或字段中数据两边的空格
用法:to_date(日期字段)<br/>
 
说明:返回日期字段的年月日部分<br/>
 
示例:to_date([入库日期]),返回入库日期的年月日时间
 
  
DATE_ADD<br/>
+
示例:TRIM(” ABC “),返回”abc”。
用法:date_add(起始日期, 数值字段)<br/>
 
说明:返回从起始日期算起,数值字段对应天数之后的日期<br/>
 
示例:date_add([入库日期], 1),返回货品入库第二天的日期
 
  
DATE_SUB<br/>
+
====UPPER====
用法:date_sub(起始日期, 数值字段)<br/>
+
<br/>
说明:返回从起始日期算起,数值字段对应天数之前的日期<br/>
+
用法:UPPER(表达式/字段)
示例:date_sub([出库日期], 1),返回货品出库前一天的日期
 
  
===字符串函数===
+
说明:返回表达式或字段值全部大写形式的字符串
通过使用字符串函数,您可以对字符串进行联结、重复、截取等操作,也可以获取字符串的长度。
+
 
 +
示例:UPPER(“abc”),返回”ABC”。
 +
 
 +
===逻辑(条件)函数===
 +
 
 +
====CASE WHEN====
 +
<br/>
 +
用法:CASE WHEN a THEN b [WHEN c THEN d ],[ELSE e] END
 +
 
 +
说明:对数据进行多级条件判断,一旦满足了某一个WHEN,则这条数据就会退出CASE WHEN,确定返回值。
 +
 
 +
示例:当月中的某天小于10时,值为“上旬”;在11至21之间时,值为“中旬”;其他值为“下旬”。
 +
<pre>
 +
CASE WHEN DAY([日期])<=10 THEN '上旬'
 +
WHEN DAY([日期]) BETWEEN 11 and 21 THEN '中旬'
 +
ESLE '下旬'
 +
END
 +
</pre>
 +
 
 +
====CCOALESCE====
 +
<br/>
 +
用法:CCOALESCE(字段1,字段2, ’默认’)
 +
 
 +
说明:返回参数中的第一个非空值和非空串;如果所有值都为NULL或空串,那么返回空串,与CCOALESCE区别COALESCE会返回空串,CCOALESCE会跳过空串
 +
 
 +
示例:CCOALESCE([名字1],[ 名字2] ’佚名’),返回参数中的第一个非空名字
 +
 
 +
====CCOALESCE====
 +
<br/>
 +
用法:CCOALESCE(字段1,字段2, ’默认’)
 +
 
 +
说明:返回参数中的第一个非空值和非空串;如果所有值都为NULL或空串,那么返回空串,与CCOALESCE区别COALESCE会返回空串,CCOALESCE会跳过空串
 +
 
 +
示例:CCOALESCE([名字1],[ 名字2] ’佚名’),返回参数中的第一个非空名字
 +
 
 +
====COALESCE====
 +
<br/>
 +
用法:COALESCE(字段1,字段2, ’默认’)
 +
 
 +
说明:返回参数中的第一个非空值;如果所有值都为NULL,那么返回NULL
 +
 
 +
示例:COALESCE([名字1],[ 名字2] ’佚名’),返回参数中的第一个非空名字
 +
 
 +
===数值===
 +
 
 +
====CEIL====
 +
<br/>
 +
用法:CEIL(数值a)
 +
 
 +
说明:返回不小于数值a的最小整数
 +
 
 +
示例:CEIL(4.12),则返回5
 +
 
 +
====FLOOR====
 +
<br/>
 +
用法:FLOOR(数值a)
 +
 
 +
说明:返回不大于数值a的最大整数
 +
 
 +
示例:CEIL(4.12),则返回4
 +
 
 +
====LN====
 +
<br/>
 +
用法:LN(数值)
 +
 
 +
说明:求数值的对数
 +
 
 +
示例:LN(10),返回2.3025
 +
 
 +
====LOG====
 +
<br/>
 +
用法:LOG(数值A,数值B)
 +
 
 +
说明:以数值A为底,求数值B的对数
 +
 
 +
示例:LOG (2,4),返回2.0
 +
 
 +
====POW====
 +
<br/>
 +
用法:POW(数值A,数值B)
 +
 
 +
说明:求数值A的数值B次方
 +
 
 +
示例:POW( (4,2),返回16.0
 +
 
 +
====RAND====
 +
<br/>
 +
用法:RAND()
  
CONCAT<br/>
+
说明:返回大于0小于1的随机小数
用法:concat(字段1, 字段2...)<br/>
 
说明:返回顺序联结各参数的字符串<br/>
 
示例:concat([货品编号], [类型编号]),返回货品编号和类型编号联结后的字符串
 
  
INSTRING<br/>
+
示例:RAND(),返回随机小数
用法:instring(字符串1, 字符串2[, 起始位置])<br/>
 
说明:返回字符串1在字符串2的起始位置后第一次出现时的位置,其中起始位置可选<br/>
 
示例:instring([名字],"尔”),返回“尔”在名字字段中第一次出现时的位置
 
  
LENGTH<br/>
+
====ROUND====
用法:length(字符串)<br/>
+
<br/>
说明:返回字符串的长度<br/>
+
用法:ROUND(数值A,[整数D])
示例:length([货品名]),返回货品名的长度
 
  
REPEAT<br/>
+
说明:返回数值A四舍五入到小数点后D位,不填时默认为0
用法:repeat(字符串, 数值)<br/>
 
说明:返回字符串重复对应数值次数后的新字符串结果<br/>
 
示例:repeat([货品名], 2),返回货品名重复2次得到字符串
 
  
REVERSE<br/>
+
示例:ROUND(4.12,1),返回4.1
用法:reverse(字符串)<br/>
 
说明:返回字符串倒转后的新字符串结果<br/>
 
示例:reverse([类型编号]),返回类型编号倒转后的字符串
 
  
SUBSTR<br/>
+
====SQRT====
用法:substr(字符串, 起始位置[, 长度])<br/>
+
<br/>
说明:返回从起始位置起对应长度的字符串的子字符串,长度为可选项<br/>
+
用法:SQRT(数值)
示例:substr([商品类型], 4),返回商品类型的索引为4起至末尾的子字符串
 
  
===条件函数===
+
说明:求数值的根号,需要大于等于0
通过条件函数,您可以自由定义可嵌套的多层逻辑,根据条件让表达式最终产生不同的结果。
 
  
IF<br/>
+
示例:SQRT(4),返回2.0
用法:IF(表达式,结果1,结果2)<br/>
 
说明:IF为判断函数,表达式为比较型或计算型语句。若表达式的计算结果正确,则返回“结果1”,否则,返回“结果2”<br/>
 
示例:IF([订单数]  > 500, "合格", "不合格")。结果为若该行“订单数”字段对应值大于500,则返回“合格”,否则返回“不合格”
 

2017年7月14日 (五) 00:34的版本

公式本身不带聚合功能,如需聚合,则在公式外面包含聚合函数,如SUM(ROW_MAX([a],[b]))
如果新字段的公式外层有聚合函数,则该新字段适用于数值轴,不适用于维度轴
如果新字段的公式外层没有聚合函数,则该新字段适用于维度轴,不适用于数值轴
公式支持嵌套

表达式中的元素可以分为2大类:字段和函数。
字段包括原生字段,计算字段和分组字段。您可以将函数应用于字段上,配合函数的参数,得到符合您需求的新字段。
函数可以分为聚合函数,数值函数,日期函数,字符串函数,以及条件函数。

聚合函数

BOL


用法:BOL(日期字段,字段)

说明:期初计算,返回日期字段中起始时间的字段值,日期字段的起始时间受筛选器影响。

示例:BOL([统计日期],[库存]),返回统计日期中起始日期的库存值

LTD


用法:LTD(日期字段,字段)

说明:期末计算,返回日期字段中截止时间的字段值,日期字段的截止时间受筛选器影响。

示例:BOL([统计日期],[库存]),返回统计日期中截止日期的库存值

PERCENT


用法:PERCENT([数值字段],百分位)

说明:求数值类型字段的中位数和百分位数,传入参数为数值字段;第二个参数范围是0<p<1,例如0.1,0.25,0.75,0.95。

示例:PERCENT([数学考试分数],0.5),返回考试分数的中位数。

日期和时间函数

DATE-AFTER-MONTHS


用法:DATE-AFTER-MONTHS(日期字段,数值)

说明:返回某个日期在一个或多个自然月后/前的对应日期

示例:DATE-AFTER-MONTHS([开学日期],1),返回开学日期后一个自然月的日期,如DATE-AFTER-MONTHS(“2016-01-20”, 1),返回”2016-02-20”

DAY-OFF-WEEK


用法:DAY-OFF-WEEK(日期字段[,类型])

说明:返回该日期在一周中的第几天,如果需要返回“星期一“的格式,第二参数传入0

示例:
A. DAY-OFF-WEEK( [下单时间]);DAY-OFF-WEEK( [‘2016-05-13’]),返回5;
B. DAY-OFF-WEEK( [下单时间],0);DAY-OFF-WEEK( [‘2016-05-13’],0),返回星期五;

SECOND_DIFF


用法:SECOND_DIFF(日期字段1,日期字段2)

说明:返回两个日期相差的秒数,只允许上传日期型的字段

示例:SECOND_DIFF([登陆时间],[离线时间]),返回同一行上“登陆时间”至“离线时间”的间隔秒数。

字符串函数

STRING_SPLIT


用法:STRING_SPLIT(表达式/字段,分隔符,序列值)

说明:根据预设分隔符分割字符串后,返回拆分数组中指定序列的字符串

示例:
A. STRING_SPLIT(“柱图,线图,雷达图”,”,”0),返回”柱图“;
B. STRING_SPLIT(“柱图,线图,雷达图”,”,”1),返回”线图“;

TLD


用法:TLD(合法的URL链接/字段)

说明:返回合法URL链接的一级域名,注意需带协议部分,如http。对于不合法的链接均范围null。

示例:TLD(“https://www.bdp.cn”),返回“bdp.cn”。

TRIM


用法:TRIM(表达式/字段)

说明:去除表达式或字段中数据两边的空格

示例:TRIM(” ABC “),返回”abc”。

UPPER


用法:UPPER(表达式/字段)

说明:返回表达式或字段值全部大写形式的字符串

示例:UPPER(“abc”),返回”ABC”。

逻辑(条件)函数

CASE WHEN


用法:CASE WHEN a THEN b [WHEN c THEN d ],[ELSE e] END

说明:对数据进行多级条件判断,一旦满足了某一个WHEN,则这条数据就会退出CASE WHEN,确定返回值。

示例:当月中的某天小于10时,值为“上旬”;在11至21之间时,值为“中旬”;其他值为“下旬”。

CASE WHEN DAY([日期])<=10 THEN '上旬'
WHEN DAY([日期]) BETWEEN 11 and 21 THEN '中旬'
ESLE '下旬'
END

CCOALESCE


用法:CCOALESCE(字段1,字段2, ’默认’)

说明:返回参数中的第一个非空值和非空串;如果所有值都为NULL或空串,那么返回空串,与CCOALESCE区别COALESCE会返回空串,CCOALESCE会跳过空串

示例:CCOALESCE([名字1],[ 名字2] ’佚名’),返回参数中的第一个非空名字

CCOALESCE


用法:CCOALESCE(字段1,字段2, ’默认’)

说明:返回参数中的第一个非空值和非空串;如果所有值都为NULL或空串,那么返回空串,与CCOALESCE区别COALESCE会返回空串,CCOALESCE会跳过空串

示例:CCOALESCE([名字1],[ 名字2] ’佚名’),返回参数中的第一个非空名字

COALESCE


用法:COALESCE(字段1,字段2, ’默认’)

说明:返回参数中的第一个非空值;如果所有值都为NULL,那么返回NULL

示例:COALESCE([名字1],[ 名字2] ’佚名’),返回参数中的第一个非空名字

数值

CEIL


用法:CEIL(数值a)

说明:返回不小于数值a的最小整数

示例:CEIL(4.12),则返回5

FLOOR


用法:FLOOR(数值a)

说明:返回不大于数值a的最大整数

示例:CEIL(4.12),则返回4

LN


用法:LN(数值)

说明:求数值的对数

示例:LN(10),返回2.3025

LOG


用法:LOG(数值A,数值B)

说明:以数值A为底,求数值B的对数

示例:LOG (2,4),返回2.0

POW


用法:POW(数值A,数值B)

说明:求数值A的数值B次方

示例:POW( (4,2),返回16.0

RAND


用法:RAND()

说明:返回大于0小于1的随机小数

示例:RAND(),返回随机小数

ROUND


用法:ROUND(数值A,[整数D])

说明:返回数值A四舍五入到小数点后D位,不填时默认为0

示例:ROUND(4.12,1),返回4.1

SQRT


用法:SQRT(数值)

说明:求数值的根号,需要大于等于0

示例:SQRT(4),返回2.0