當前為5.1版本文檔,更多實例內容將在最新幫助文檔中展現,點選跳轉至 最新版幫助文檔

操作符和不合法報錯

1. 概述

1.1 版本

FineBI 版本JAR 包功能變動
5.1.112021-04-02實時資料公式校驗加強
5.1.12-抽取資料公式校驗加強

1.2 應用場景

函式計算格式 已經說明在 FineBI 中使用函式的計算組成以及基礎的計算語法,但有時使用者也會遇到書寫公式報錯的問題,可根據提示完成公式的正確書寫。

1.3 功能簡介

本文將詳細介紹操作符和表式的語法,幫助使用者瞭解 FineBI 的公式校驗方案,正確有效的寫出需要的函式。

2. 操作符語法

2.1 +

概念
+ 操作符在應用於數字時表示相加,在應用於字串時表示串聯。
支援組合型別除日期欄位+日期欄位之外,支援其他任意型別組合
傳回結果型別參數中存在正文欄位,結果為正文欄位

日期+數值則為日期欄位

如果全是數值則為數值欄位

不合法提示:「不支援日期+日期操作」,如下圖所示:

2.2 -

概念
- 操作符在應用於數字時表示相減,在應用於表式時表示求反。
支援組合型別兩個數值型別或者兩個日期型別欄位

注:不支援數值欄位-日期欄位。

傳回結果型別日期型別-日期型別傳回結果為時間戳

日期型別-數值型別 傳回結果為日期型別

其餘傳回結果為數值型別

不合法提示:

  • 不支援數值-日期操作」,如下圖所示:

  • 其他非法的減法:「文字不能作為減數或被減數」,如下圖所示:

2.3 /

概念
/ 操作符表示數值相除
支援組合型別兩個數值型別參數
傳回結果型別數值型別

不合法提示:「操作符兩端必須為數值型別」,如下圖所示:

2.4 *,%,^

概念

* 操作符表示數值相乘

% 操作符傳回除法運算的餘數

^ 乘方計算數位的指定次冪

支援組合型別

兩個數值型別參數

傳回結果型別

數值型別

不合法提示:「操作符兩端必須為數值型別」,如下圖所示:

2.5 >,<,

概念

>(大於)

<(小於)

>=(大於或等於)

<=(小於或等於)

支援組合型別兩個相同型別參數
傳回結果型別布林型別

不合法提示:「操作符兩端欄位型別必須相同」,如下圖所示:

2.6 =,!=,== (比較)

概念
== 或 =(等於)

!= (不等於)

支援組合型別

兩個相同型別參數

或者參數中有 null

傳回結果型別

布林型別

不合法提示:「操作符兩端欄位型別必須相同」,如下圖所示:

3.  表式語法

FineBI 的函式表式寫法參見:表式語法

當使用者使用以下書寫方式時,會出現報錯提示。

3.1 操作符表式不完整

例如使用者書寫如下的表式:ABS(合同金額)+,則會報錯「語法錯誤,缺少標示符」:

3.2 字元錯誤

例如需要新增一欄,該列全部指派為 1,此時輸入 "1,由於缺少一半英文雙引號,會出現如下報錯「字元錯誤」:

3.3 語法錯誤

即其他的語法錯誤。

4. 具體函式型別不合法提示

4.1 文字函式

函式 
結果型別不合法提示

LEN

數值

LEN不符合 (任意型別) 的參數要求

CHAR

文字

CHAR不符合 (數值) 的參數要求

CODE

數值

CODE不符合 (文字) 的參數要求

REPLACE

文字

REPLACE不符合 (任意型別,任意型別,任意型別) 或 (任意型別,數值,數值,任意型別) 的參數要求

STARTWITH

bool

STARTWITH不符合 (任意型別,任意型別) 的參數要求

ENDWITH

bool

ENDWITH不符合 (任意型別,任意型別) 的參數要求

EXACT

bool

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不符合 (任意型別,任意型別) 或 (任意型別,任意型別,數值) 的參數要求
NUMTO文字NUMTO不符合 (數值)或(數值,布爾)的參數要求
PROPER文字PROPER:不符合(文字)的參數要求
SPLIT文字SPLIT不符合(任意型別,任意型別)的參數要求
SUBSTITUTE文字SUNSTITUTE不符合(任意型別,任意型別,任意型別,[數值])的參數要求

4.2 日期函式

函式 結果型別不合法提示
DATE日期DATE不符合(數值,數值,數值)的參數要求
DATEDELTA日期


不符合(日期/文字,數值)的參數要求


MONTHDELTA時間
YEARDELTA日期
DATEDIF數值DATEDIF不符合(日期/文字,日期/文字,文字)的參數要求
DATESUBDATE數值DATESUBDATE不符合(日期/文字,日期/文字,文字)的參數要求
DATETONUMBER數值DATETONUMBER不符合(日期/文字)的參數要求
DAYVALUE數值DAYVALUE不符合(日期/文字)的參數要求
DAYSOFMONTH數值

不符合(日期/文字)的參數要求

DAYSOFQUARTER數值
DAYSOFYEAR數值

實時資料:不符合(日期/文字)的參數要求

抽取資料:不符合(任意型別...)的參數要

YEAR數值



#函式名#不符合() 或 (日期/正文)的參數要求

WEEK數值
DAY數值
HOUR數值
MINUTE數值
MONTH數值
SECOND數值
TIME時間

實時資料:TIME:不符合(數值,數值,數值)的參數要求

抽取資料:TIME不符合(數值/文字,數值/文字,數值/文字)的參數要

TODATE

時間

實時資料:TODATE不符合(任意型別) 或 (文字,文字)的參數要求

抽取資料:TODATE:不符合(數值/日期/文字) 或 (文字,文字)或(文字,文字,文字)的參數要

NOW時間NOW不符合()的參數要求
TODAY時間TODAY不符合()的參數要求
WEEKDATE時間WEEKDATE不符合(數值,數值,數值,數值)的參數要求
WEEKDAY數值WEEKDAY不符合(日期/文字)的參數要求
DAYS360數值DAYS360:不符合(日期/文字,日期/文字,文字/數值)的參數要求

注:實時資料不支援該函式。

LUNAR文字LUNAR不符合(數值/文字,數值/文字,數值/文字) 的參數要求

注:實時資料不支援該函式。

4.3 數學和三角函式

函式 / 公式名傳回型別公式不合法提示
PI數值PI不符合(數值)或()的參數要求
INT數值

實時資料:不符合(數值)的參數要求

抽取資料:不符合(文字/數值)的參數要求

CEILING










數值










#函式名#不符合(數值)的參數要求

Floor
SQRT
LN
SQRT
ABS
ACOS
ASIN
ATAN
LOG10
SIN
TAN
COS
EXP
DEGREES
SIGN
RADIANS
RAND數值RAND不符合()的參數要求
MIN任意型別

實時資料:不符合所有參數為相同型別的要求

抽取資料:不符合(數值...)的參數要求

MAX
RANDBETWEEN




數值



#函式名#不符合(數值,數值)的參數要求

MOD
POWER
ROUND
ATAN2
PROMOTION
LOG數值#函式名#不符合(數值,數值)或(數值)的參數要求
TRUNC

4.4 邏輯函式

函式 
結果型別
不合法提示
ANDboolAND的參數型別必須為布林型別或數值型別
ORboolOR的參數型別必須為布林型別為bool型別或數值型別
IF第一個為 bool 型別或數值型別(0或者1),第二個和第三個參數相同型別,兩個參數中有空,傳回非空參數型別;兩個參數型別不同:傳回文字型別。

IF:表式的第一個參數不符合布林型別或數值型別"

IF:不符合(布爾/數值,參數,參數)的參數要求

注:實時資料中表式的結果型別必須相同。


SWITCH傳回結果參數中第一個非空的參數型別(switch函式,第2n+1個參數是傳回參數n>0)

抽取資料:SWITCH:的參數至少3個

實時資料:SWITCH:表式的結果型別必須相同

SWITCH:的參數至少3個

||、&&bool#符號#只能連結兩個布林型別或數值型別的表式

4.5 其他函式

函式
結果型別
不合法提示
ISNULLbool

實時資料:ISNULL不符合(任意型別)的參數要求

抽取資料:ISNULL:不符合(任意型別...) 的參數要求

NVL排除空(null) ,如果其他傳回結果參數的型別相同,則傳回結果參數中第一個非空且非空字串 的參數型別(NVL函式,所有參數都是傳回參數)NVL不符合所有參數為相同型別的要求

4.6 聚合函式

函式 / 公式名結果型別不合法提示
SUM_AGG




數值




#函式名#不符合 (數值) 的參數要求



AVG_AGG
VAR_AGG
MEDIAN_AGG
STDEV_AGG

PERCENTILE_AGG

注:僅實時資料支援。

數值

PERCENTILE_AGG不符合 (數值,數值) 的參數要求

PERCENTILE_AGG第二個常數數值型別參數必須在0到1之

MAX_AGG

同參數型別

#函式名#不符合 (任意型別) 的參數要求

MIN_AGG

APPROX_COUNT_AGG

注:僅實時資料支援。


數值


#函式名#不符合 (任意型別) 的參數要求

COUNT_AGG
COUNTD_AGG

聚合函式組合場景下的不合法報錯:

錯誤代碼

含義

舉例


不合法提示

61500002

明細過濾後的指標不符合聚合函式ABS(欄位),欄位進行了明細過濾#函式名#明細過濾後的指標僅支援聚合函式

61500003

無法將聚合參數和非聚合參數混合使用SUM_AGG(欄位1)+欄位2無法將聚合參數和非聚合參數混合使用

61500004

聚合函式不能巢聚合函式SUM_AGG(SUM_AGG(欄位)))#函式名#聚合函式不能巢聚合函式

4.7 快速計算函式

函式結果型別不合法提示

SAME_PERIOD







數值

SAME_PERIOD不符合(數值) 或 (數值,正文) 的參數要求

SAME_PERIOD第二個常數正文型別參數必須為"Y","M","W"(不區分大小寫)

ACC_SUM

ACC_SUM不符合(數值) 或 (數值,數值) 的參數要求

ACC_SUM第二個常數數值型別參數必須為0,1

PREVIOUS_PERIODPREVIOUS_PERIOD不符合(數值) 的參數要求
PERIOD_ANLSPERIOD_ANLS不符合(數值) 或 (數值,文字) 的參數要求

PERIOD_ANLS第二個常數正文型別參數必須為Y","M","W"(不區分大小寫)

PERIOD_TD

PERIOD_TD不符合(數值) 或 (數值,文字) 的參數要求

PERIOD_TD第二個常數正文型別參數必須為Y","M","W"(不區分大小寫)

RANK_ANLS

RANK_ANLS不符合(數值) 或 (數值,數值) 或 (數值,文字) 或 (數值,數值,正文)的參數要求

RANK_ANLS第二個常數數值型別參數必須為0,1

RANK_ANLS第三個常數正文型別參數必須為"asc","desc"(不區分大小寫)

TOTAL

TOTAL不符合(數值) 或 (數值,數值) 或 (數值,正文) 或 (數值,數值,正文)的參數要求

TOTAL第二個數值型別參數必須為0,1

TOTAL第三個常數正文型別參數必須為"sum","avg","min","max"(不區分大小寫)

通用報錯提示:

含義

舉例

不合法提示
參數中包含非聚合函式或者常數,或者第一個參數不是聚合函式TOTAL(合同金額)(「合同金額」為欄位)#函式名#中參數只有是聚合函式或者常數,且第一個參數必須為聚合函式

4.8 控制計算粒度函式

函式 結果型別不合法提示

FIXED

數值

#函式名#必須包含參數

#函式名#維度不能為聚合函式

#函式名#最後一個參數必須是聚合函式

INCLUDE
EXCLUDE




附件列表


主題: 数据分析进阶
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 评价文档,奖励 1 ~ 100 随机 F 豆!