字符串处理类

LEFT

用法: LEFT(<度量字段>,< n >), 函数返回<字段>值从左边第1个字符开始,长度为n的字符串
示例: LEFT(字段1,3) 返回值为”ABC”;字段1的值为”ABCDEF”;

RIGHT

用法: RIGHT(<度量字段>,< n >), 函数返回<字段>值从右往左数的长度为n的字符串
示例: RIGHT(字段1,3) 返回值为”DEF”;字段1的值为”ABCDEF”;

MID

用法: MID(<度量字段>, < start >, < n >), 函数返回<字段>值从从左边第start个开始, 长度为n的字符串
示例: MID(字段1, 3, 3) 返回值为”CDE”;字段1的值为”ABCDEF”;

POS

用法: POS(<度量字段>,<字串>), 函数返回<字串>在<文本>中的位置, 如无匹配则返回-1;
示例: POS(字段1,”DE”) 返回值为4;字段1的值为”ABCDEF”;

UPPER

用法: UPPER(<度量字段>), 将<字段>的值转换成大写;
示例: UPPER(字段1) 返回值为”ABCDEF”;字段1的值为”AbcdeF”;

LOWER

用法: LOWER(<度量字段>), 将<字段>的值转换成小写;
示例: LOWER(字段1) 返回值为”abcdef”;字段1的值为”AbcdeF”;

VAL

用法: VAL(<度量字段>), 将<字段>文本类型转换成数值类型
示例: VAL(字段1) 返回值为 123;字段1的值为”123”;

LEFTTRIM

用法: LEFTTRIM(<度量字段>), 去掉<字段>左边的空格后返回
示例: LEFTTRIM(字段1) 返回值为”ABC”;字段1的值为” ABC”;

RIGHTTRIM

用法: RIGHTTRIM(<度量字段>), 去掉<字段>右边的空格后返回
示例: RIGTTRIM(字段1) 返回值为”ABC”;字段1的值为”ABC “;

NUMBERTOSTRING

用法: NUMBERTOSTRING(<数值>), 数值类型的数据转换成字符串
示例: NUMBERTOSTRING(字段1) 返回值为”12345”;字段1的值为”12345 “;

SPLITPART

用法: SPLITPART(<字符串字段>,分隔字符,子串位置), 公式会将一个字符串按照“分隔字符”将其分为N个子串(N等于分隔字符的数量2+1),子串位置从1(从左往右)开始计数,或者从-1(从右往左)开始计数
*示例:
SPLITPART(<字段1>,A,2) 返回值为”BCD”;字段1的值为”ABCDABHABC”;子串位置填写-5时,也可以取到”BCD”

CONCAT

用法: CONCAT(<字段>,<字段>,…..), 公式会将多个字段连接为一个字符串。入参必须为字符串类型的字段
示例: CONCAT(<字段1>,<字段2>) 返回值为”ABCD”;字段1的值为”A”,字段2的值为”BCD”

ROUND

用法: ROUND(<字段>,<精度>), 四舍五入地对字段进行小数位数调整
示例: ROUND(<字段1>,<精度>) 返回值为”12.33”;字段1的值为”12.33333”,精度为2

MOD

用法: MOD(<字段>,<字段>), 取模运算
示例: MOD(<字段1>,<字段2>) 返回值为”1”;字段1的值为”3”,字段2的值为”2”

CASEWHEN

用法: CASEWHEN(<条件>,<值>,<条件>,<值>…..), 类同SQL中的case when语法
示例: CASEWHEN(<性别字段>=”男”,”male”,<性别字段>=”女”,”female”),则该字段值为”男”的被替换为”male”,”女”替换为”female”

STRINGTODATE

用法: STRINGTODATE(<字段>,<格式>), 字符串转时间
示例: STRINGTODATE(“1989-09-27”,”yyyy-MM”)返回值为”198909”
以上两个函数的format格式目前统一为java 中格式化保持一致,支持格式类型如下:

  • yyyy:年

  • MM:月

  • dd:日

  • hh:1~12小时制(1-12)

  • HH:24小时制(0-23)

  • mm:分

  • ss:秒

NOW

用法: NOW(),获取当前时间
示例:

DATEADD

用法: DATEADD(<时间字段>,<偏移量>,<时间粒度>),在<时间字段>的基础上增加”时间粒度”乘以”数量”的时间偏移量。
时间粒度可选值为:

  • YEAR 年

  • MONTH 月

  • DAY 日

  • HOUR 时

  • MINUTE 分

  • SECOND 秒

示例: DATEADD(“1989-09-01”,10,”DAY”),返回值为1989-09-11

DATEDIFF

用法: DATEDIFF(<时间字段1>,<时间字段2>,<时间粒度>),两个时间字段时间的间隔
时间粒度可选值为:

  • YEAR 年

  • MONTH 月

  • DAY 日

  • HOUR 时

  • MINUTE 分

  • SECOND 秒

示例: DATEDIFF(“1989-09-01”,”1989-09-11”,”DAY”),返回值为10

DATEFORMAT

用法: DATEFORMAT(<日期字段>,<时间格式>),将日期格式化成字符串
示例: DATEFORMAT(<日期字段>,”yyyy-MM-dd”),若日期字段有个值为1989年8月4日,则返回值为1989-08-04,格式化时,也可以将”-“改为”/“等字符

聚合类

示例数据集1

数据集

BU 部门 预算类型 费用
xxpt 协同 团建费 500
xxpt 协同 培训费 200
xxpt IT 团建费 700
xxpt IT 培训费 150
aliyun 飞天1 团建费 200
aliyun 飞天1 培训费 100

表格

BU 部门 部门总费用
xxpt 协同 700
xxpt IT 850
aliyun 飞天1 300

示例数据集2

数据集

BU 部门 预算类型 费用
xxpt 协同 团建费 500
xxpt 协同 培训费 200
xxpt 协同 团建费 500
xxpt 协同 培训费 200
xxpt IT 团建费 700
xxpt IT 培训费 150
xxpt eHR 培训费 0
xxpt eHR 团建费 0
aliyun 飞天1 团建费 200
aliyun 飞天1 培训费 100

表格

BU 部门 预算类型
xxpt 协同 团建费
xxpt 协同 培训费
xxpt IT 团建费
xxpt IT 培训费
xxpt eHR 培训费
xxpt eHR 团建费
aliyun 飞天1 团建费
aliyun 飞天1 培训费

SUM

用法: SUM(<度量字段>,[条件],[排除字段]) 返回合乎[条件]下, 对<字段>进行求和的结果, [排除字段] 不参与求和的交叉计算;

示例: 使用示例数据集1

  1. 部门团建费=SUM(费用, 预算类型="团建费")

表格结果

BU 部门 部门总费用 部门团建费
xxpt 协同 700 500
xxpt IT 850 700
aliyun 飞天1 300 200
  1. BU团建费=SUM(费用, 预算类型="团建费", 部门)

表格结果

BU 部门 部门总费用 部门团建费 BU团建费
xxpt 协同 700 500 1200
xxpt IT 850 700 1200
aliyun 飞天1 300 200 200

AVG

用法: AVG(<度量字段>,[条件],[排除字段])返回合乎[条件]下, 对<字段>进行求平均的结果, [排除字段] 不参与求和的交叉计算;
示例: 使用示例数据集1

  1. 部门平均团建费=AVG(费用, 预算类型="团建费",部门)

表格结果

BU 部门 部门总费用 部门平均团建费
xxpt 协同 700 600
xxpt IT 850 600
aliyun 飞天1 300 200
  1. 所有平均团建费=AVG(费用, 预算类型='团建费',部门,BU)

表格结果

BU 部门 部门总费用 部门平均团建费 所有平均团建费
xxpt 协同 700 600 466.67
xxpt IT 850 600 466.67
aliyun 飞天1 300 200 466.67

MAX

用法: MAX(<度量字段>,[条件],[排除字段])返回合乎[条件]下, 对<字段>求最大值的结果, [排除字段] 不参与求和的交叉计算;
示例: 使用示例数据集1

  1. 部门最高团建费=MAX(费用, 预算类型='团建费')

表格结果

BU 部门 部门总费用 部门最高团建费
xxpt 协同 700 500
xxpt IT 850 700
aliyun 飞天1 300 200
  1. BU最高团建费=MAX(费用, 预算类型="团建费", 部门)

表格结果

BU 部门 部门总费用 部门平均团建费 BU最高团建费
xxpt 协同 700 600 700
xxpt IT 850 600 700
aliyun 飞天1 300 200 200

MIN

用法: MIN(<度量字段>,[条件],[排除字段])返回合乎[条件]下, 对<字段>求最小值的结果, [排除字段] 不参与求和的交叉计算;
示例: 使用示例数据集1

  1. 部门最低团建费=MIN(费用, 预算类型="团建费")

表格结果

BU 部门 部门总费用 部门最低团建费
xxpt 协同 700 500
xxpt IT 850 700
aliyun 飞天1 300 200
  1. BU最低团建费=MIN(费用, 预算类型="团建费", 部门)

表格结果

BU 部门 部门总费用 部门平均团建费 BU最低团建费
xxpt 协同 700 600 500
xxpt IT 850 600 500
aliyun 飞天1 300 200 200

COUNT

用法: COUNT(<度量字段>,[条件],[排除字段])返回合乎[条件]下, 对<字段>进行计数的结果, [排除字段] 不参与求和的交叉计算;
示例: 使用示例数据集2

  1. 部门预算条数 = COUNT(部门, 费用>0,预算类型)

表格结果

BU 部门 预算类型 BU部门数量
xxpt 协同 团建费 4
xxpt 协同 培训费 4
xxpt IT 团建费 2
xxpt IT 培训费 2
aliyun 飞天1 团建费 2
aliyun 飞天1 培训费 2

COUNTDISTINCT

用法: COUNTDISTINCT(<度量字段>,[条件],[排除字段])返回合乎[条件]下, 对<字段>进行去重计数的结果, [排除字段] 不参与求和的交叉计算;
示例: 使用示例数据集2

  1. BU部门数量 = COUNTDISTINCT(部门, 费用>0,预算类型)

表格结果

BU 部门 预算类型 BU部门数量
xxpt 协同 团建费 1
xxpt 协同 培训费 1
xxpt IT 团建费 1
xxpt IT 培训费 1
aliyun 飞天1 团建费 1
aliyun 飞天1 培训费 1

😋如果上述帮助文档未能解决您的问题,请联系 幸福的棉花糖