當您分析的資料並不能直接從資料表中擷取,而需要基於未經處理資料進行加工時,可以建立計算欄位。
前提條件
您已建立資料集,請參見建立資料集。
背景資訊
Quick BI支援豐富的欄位計算,協助您靈活的處理資料:
彙總
例如通過客戶名稱統計客戶數:
COUNT(DISTINCT [客戶名稱])四則運算
例如計算客單價:
[成交金額] / [客戶量]字元的分割與合并
例如將省份和城市拼接:
CONCAT([省份], [城市])複雜分組
例如將滿足一定條件的客戶等級定義為VIP客戶:
CASE WHEN [成交金額]>1000 AND [成交筆數]>5 THEN 'VIP' ELSE '普通' END
配置方式
在資料處理頁面,單擊建立計算欄位。

您也可以在欄位大綱或資料預覽介面中,將滑鼠移動至目標欄位,單擊
表徵圖,選擇建立->建立計算欄位。
在建立計算欄位頁面,配置參數後,單擊確定。
輸入欄位名稱。
(可選)輸入欄位描述。

點擊引用函數並點擊引用欄位,編輯欄位運算式。其中引用的函數分為系統內建函數和資料庫函數。
系統內建函數:BI系統內建的計算函數,可屏蔽底層資料庫差異,適用於各類資料庫。
系統內建函數具體使用介紹請參見系統內建函數。
資料庫函數:底層資料庫提供的原生函數,不同資料庫會有不同的原生函數。例如:
MySQL資料來源展現的資料庫函數如下:

探索空間展現的資料庫函數為Clickhouse函數:

在編輯運算式時,您需要關注以下幾點:
您也可以在運算式編輯框輸入
[喚出列表來插入度量欄位名稱。點擊快捷計算符可直接進行引用。

單擊
圖表可清空運算式。
常見的欄位運算式樣本請參見情境舉例。
單擊確定。

建立的計算欄位也可以直接被引用再做二次計算,滿足您複雜計算的情境。
例如,
利潤金額 = 訂單金額 - 成本金額;利潤率 = 利潤金額 / 訂單金額。
情境舉例
彙總函式
求和:
SUM([欄位])計數:
COUNT([欄位])計數去重:
COUNT(DISTINCT [欄位])求平均值:
AVG([欄位])
配置了彙總計算的計算欄位,將根據儀表板中配置的維度自動進行彙總運算。
四則運算
支援加減乘除運算
例如從訂單明細表計算客單價:
SUM([成交金額] )/ COUNT(DISTINCT [客戶名稱])
複雜的分組情境
對維度進行分組的情境,簡單的單欄位分組可以支援使用分組維度功能,當您需要針對多個欄位組合條件後分組,此時可以用
CASE WHEN函數。例如,CASE WHEN [成交金額]>5000 AND [成交筆數]>40 THEN 'VVIP' WHEN [成交金額]>1000 AND [成交筆數]>5 THEN 'VIP' ELSE '普通' END
字元拼接
假設資料表中分別有省份、城市2個欄位,您可以使用字串拼接函數,將省份城市合并到一個欄位中。
CONCAT(a, b, c, d):將需要合并的欄位加入括弧中,英文逗號分隔。如果合并的時候多列之間希望增加分隔字元,可以分隔字元加英文單引號。例如,
CONCAT([省份],'-', [城市])
字串處理
可以使用字串函數,對文本進行處理。
不同資料庫函數不同導致字串處理方式有所差異,本文以MySQL函數舉例。
字元截取:
SUBSTRING([客戶名稱],1,1):[客戶名稱]欄位,從第1個字元開始,取1個字元。SUBSTRING([欄位]):開始位置,截取字串長度。
尋找一個字串中另一個字串的位置:
INSTR([客戶名稱],'東'): 尋找[客戶名稱]中是否含有‘東’字,如果有,返回位置,如果沒有,返回0。
日期時間處理等
Quick BI針對日期和時間欄位自動拆解成多個時間顆粒度,並且可以自訂顯示格式,已經可以滿足很多日期和時間顆粒度和格式處理相關的情境。
除此之外,可以使用資料庫日期相關函數進行資料加工,可在函數列表搜尋DATE搜尋到相關的函數。
例如:不同資料庫函數不同導致日期時間處理方式有所差異,本文以MySQL函數舉例。
當前日期:
CURRENT_DATE入職天數:
DATEDIFF(CURRENT_DATE, [入職日期]),返回入職日期距離今天的天數到期日:
ADDDATE([付款日期], 365),返回付款日期後365天的日期
LOD函數詳細資訊層級計算
如果分析過程中需要添加一個維度,其明細程度高於或者低於已有視圖的可視化明細程度,但又不希望改變現有圖形展示內容,就可採用詳細資訊層級運算式功能。例如:
計算每個地區的銷售額總和:
lod_fixed{[地區]:SUM([訂單金額])}
分析客戶複購情況:
lod_fixed{[使用者id]:count(distinct([訂單id]))}
詳細請參見分析函數(LOD函數)。