函数计算格式 已经说明在 FineBI 中使用函数的计算组成以及基础的计算语法,但有时用户也会遇到书写公式报错的问题,可根据提示完成公式的正确书写。
本文将详细介绍运算符和表达式的语法,帮助用户了解 FineBI 的公式校验方案,正确有效的写出需要的函数。
参数中存在文本字段,结果为文本字段
日期+数值则为日期字段
如果全是数值则为数值字段
不合法提示:「不支持日期+日期操作」,如下图所示:
两个数值类型或者两个日期类型字段
注:不支持数值字段-日期字段。
日期类型-日期类型返回结果为时间戳
日期类型-数值类型 返回结果为日期类型
其余返回结果为数值类型
不合法提示:
「不支持数值-日期操作」,如下图所示:
其他非法的减法:「文本字段不能作为减数或被减数」,如下图所示:
两个数值类型参数
数值类型
不合法提示:「操作符两端必须为数值类型」,如下图所示:
* 运算符表示数值相乘
% 运算符返回除法运算的余数
^ 乘方计算数字的指定次幂
>(大于)
<(小于)
>=(大于或等于)
<=(小于或等于)
两个相同类型参数
布尔类型
不合法提示:「操作符两端字段类型必须相同」,如下图所示:
== 或 =(等于)
!= (不等于)
或者参数中有 null
FineBI 的函数表达式写法参见:表达式语法
当用户使用以下书写方式时,会出现报错提示。
例如用户书写如下的表达式:ABS(合同金额)+,则会报错「语法错误,缺少标示符」:
例如需要新增一列,该列全部赋值为 1,此时输入 "1,由于缺少一半英文双引号,会出现如下报错「字符错误」:
即其他的语法错误。
LEN
数值
LEN不符合 (任意类型) 的参数要求
CHAR
文本
CHAR不符合 (数值) 的参数要求
CODE
CODE不符合 (文本) 的参数要求
REPLACE
REPLACE不符合 (任意类型,任意类型,任意类型) 或 (任意类型,数值,数值,任意类型) 的参数要求
STARTWITH
bool
STARTWITH不符合 (任意类型,任意类型) 的参数要求
ENDWITH
ENDWITH不符合 (任意类型,任意类型) 的参数要求
EXACT
EXACT不符合 (任意类型,任意类型) 的参数要求
INDEXOF
INDEXOF不符合 (任意类型,数值) 的参数要求
REPEAT
REPEAT不符合 (任意类型,数值) 的参数要求
LEFT
LEFT不符合(任意类型) 或 (任意类型,数值) 的参数要求
RIGHT
RIGHT不符合(任意类型) 或 (任意类型,数值) 的参数要求
TODOUBLE
TODOUBLE不符合 (任意类型) 的参数要求
TOINTEGER
TOINTEGER不符合 (任意类型) 的参数要求
LOWER
LOWER不符合 (文本) 的参数要求
TRIM
TRIM不符合 (文本) 的参数要求
UPPER
UPPER不符合 (文本) 的参数要求
CONCATENATE
CONCATENATE:不符合(任意类型...)的参数要求
MID
MID不符合 (任意类型,数值,数值) 的参数要求
REGEXP
BOOL
实时数据:REGEXP不符合 (文本,文本) 的参数要求
抽取数据:REGEXP:不符合(文本,文本) 或 (文本,文本,数值) 的参数要求
FORMAT
实时数据:FORMAT不符合 (日期,文本) 的参数要求
抽取数据:FORMAT不符合 (任意类型,文本) 的参数要求
FIND
FIND不符合 (任意类型,任意类型) 或 (任意类型,任意类型,数值) 的参数要求
不符合(日期/文本,数值)的参数要求
不符合(日期/文本)的参数要求
实时数据:不符合(日期/文本)的参数要求
抽取数据:不符合(任意类型...)的参数要求
#函数名#不符合() 或 (日期/文本)的参数要求
实时数据:TIME:不符合(数值,数值,数值)的参数要求
抽取数据:TIME不符合(数值/文本,数值/文本,数值/文本)的参数要求
TODATE
实时数据:TODATE不符合(任意类型) 或 (文本,文本)的参数要求
抽取数据:TODATE:不符合(数值/日期/文本) 或 (文本,文本)或(文本,文本,文本)的参数要求
DAYS360:不符合(日期/文本,日期/文本,文本/数值)的参数要求
注:实时数据不支持该函数。
LUNAR不符合(数值/文本,数值/文本,数值/文本) 的参数要求
实时数据:不符合(数值)的参数要求
抽取数据:不符合(文本/数值)的参数要求
#函数名#不符合(数值)的参数要求
实时数据:不符合所有参数为相同类型的要求
抽取数据:不符合(数值...)的参数要求
#函数名#不符合(数值,数值)的参数要求
第一个为 bool 类型或数值类型(0或者1),第二个和第三个参数相同类型,两个参数中有空,返回非空参数类型;两个参数类型不同:返回文本类型。
IF:表达式的第一个参数不符合布尔类型或数值类型"IF:不符合(布尔/数值,参数,参数)的参数要求
注:实时数据中表达式的结果类型必须相同。
抽取数据:SWITCH:的参数至少3个
实时数据:SWITCH:表达式的结果类型必须相同
SWITCH:的参数至少3个
#符号#只能连接两个布尔类型或数值类型的表达式
实时数据:ISNULL不符合(任意类型)的参数要求
抽取数据:ISNULL:不符合(任意类型...) 的参数要求
排除空(null) ,如果其他返回结果参数的类型相同,则返回结果参数中第一个非空且非空字符串 的参数类型(NVL函数,所有参数都是返回参数)
#函数名#不符合 (数值) 的参数要求
PERCENTILE_AGG
注:仅实时数据支持。
PERCENTILE_AGG不符合 (数值,数值) 的参数要求
PERCENTILE_AGG第二个常量数值类型参数必须在0到1之间
同参数类型
#函数名#不符合 (任意类型) 的参数要求
APPROX_COUNT_AGG
聚合函数组合场景下的不合法报错:
错误代码
含义
举例
61500002
61500003
61500004
SAME_PERIOD
SAME_PERIOD不符合(数值) 或 (数值,文本) 的参数要求
SAME_PERIOD第二个常量文本类型参数必须为"Y","M","W"(不区分大小写)
ACC_SUM不符合(数值) 或 (数值,数值) 的参数要求
ACC_SUM第二个常量数值类型参数必须为0,1
PERIOD_ANLS不符合(数值) 或 (数值,文本) 的参数要求
PERIOD_ANLS第二个常量文本类型参数必须为Y","M","W"(不区分大小写)
PERIOD_TD不符合(数值) 或 (数值,文本) 的参数要求
PERIOD_TD第二个常量文本类型参数必须为Y","M","W"(不区分大小写)
RANK_ANLS不符合(数值) 或 (数值,数值) 或 (数值,文本) 或 (数值,数值,文本)的参数要求
RANK_ANLS第二个常量数值类型参数必须为0,1
RANK_ANLS第三个常量文本类型参数必须为"asc","desc"(不区分大小写)
TOTAL不符合(数值) 或 (数值,数值) 或 (数值,文本) 或 (数值,数值,文本)的参数要求
TOTAL第二个数值类型参数必须为0,1
TOTAL第三个常量文本类型参数必须为"sum","avg","min","max"(不区分大小写)
通用报错提示:
参数中包含非聚合函数或者常量,或者第一个参数不是聚合函数
FIXED
#函数名#必须包含参数
#函数名#维度不能为聚合函数
#函数名#最后一个参数必须是聚合函数
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
Submitted successfully
Network busy