運算子和不合法報錯

1. 作用

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

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

2. 運算子文法

2.1 +

概念
運算子在應用於數字時表示相加,在應用於字串時表示串聯。
支援組合型別除日期欄位 日期欄位之外,支援其他任意型別組合
傳回結果型別

參數中存在正文欄位,結果為正文欄位

日期 數值則為日期欄位

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

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

日期+日期.jpg

2.2 -

概念
- 運算子在應用於數字時表示相減,在應用於表式時表示求反。
支援組合型別

兩個數值型別或者兩個日期型別欄位

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

傳回結果型別

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

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

其餘傳回結果為數值型別

不合法提示:

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

2數值-日期.jpg

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

4文字不能作為減數 正確顯示.jpg2.3 /

概念
/ 運算子表示數值相除
支援組合型別

兩個數值型別參數

傳回結果型別

數值型別

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

5操作符兩端必須為數值 正確顯示.jpg

2.4 *,%,^

概念

* 運算子表示數值相乘

% 運算子傳回除法運算的餘數

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

支援組合型別

兩個數值型別參數

傳回結果型別

數值型別

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

6乘號兩端.jpg2.5 >,<,<=,>= (比較)

概念

>(大於)

<(小於)

>=(大於或等於)

<=(小於或等於)

支援組合型別

兩個相同型別參數

傳回結果型別

布林型別

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

7大於等於號.jpg

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

概念

== 或 =(等於)

!= (不等於)

支援組合型別

兩個相同型別參數

或者參數中有 null

傳回結果型別

布林型別

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

!= 操作符兩端類型不一致 显示正确.jpg

3. 表式文法

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

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

3.1 運算子表式不完整

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

3缺少標識符.jpg

3.2 字元錯誤

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

8字元錯誤.jpg3.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_ANLS

PERIOD_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




附件列表


主题: 資料分析進階
已经是第一篇
已经是最后一篇
  • 有帮助
  • 没帮助
  • 只是浏览
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙