QuickBI助你成為分析師——計算字段功能
在用戶創建報表時,有時通過現有字段數據不能直接滿足展示需求,需要進行一定建模操作。目前產品支持在數據集編輯界面進行初步建模,下面主要介紹新建字段功能,以達到展示需求。
什麽是計算字段
計算字段就是 符合當前數據源sql 列定義語法規則的用戶自己用已有字段和sql支持函數構造出的新的列。
若用戶需要在數據源中已有的數據基礎上進行計算以得到新的值,可以選擇添加計算字段。
構建計算字段的時候,支持用戶使用業務人員也容易理解的語義化的維度或度量名作為 表達式參數,計算字段語義形式的邏輯表達式最後在qbi引擎生成真實執行sql的時候,由qbi 執行引擎翻譯成底層的物理字段名構成的列表達式。
添加計算字段的方法
計算字段分為兩種:計算維度與計算度量。
用戶可以在數據集編輯界面下,
在維度欄和度量欄中點擊“+”,並在彈出的計算字段編輯器對話框中使用支持的函數和已有字段的組合即可。
從維度欄新建的計算字段自動為計算維度,從度量欄新建的計算字段自動為計算度量。
在計算字段的表達式編輯框中,當前所在數據源支持的函數和列表達式語法都可以使用。
函數名需要手工輸入。
字段名可以手動輸入,格式是[字段名],
也可以通過輸入“[” 選擇提示出的字段名列表中的字段或雙擊左側維度度量樹中的節點來插入維度或度量字段名到表達式編輯框。
正確輸入的sql表達式在編輯框中會自動有語法著色。
註意點:用戶編寫計算字段表達式的時候 最容易出錯的地方是:中英文引號,中英文逗號 ,中英文小括號等中英文標點符號混用 導致語法解析出錯,其次才是列表達式的語法用錯導致出錯,事實上只允許英文的標點符號作為詞法符號出現在 sql列表達式中!
如果計算字段報錯,首先需要非常非常地仔細檢查是不是 把英文的逗號、引號輸入成了
中文的逗號、引號,如果肉眼實在看不出來是否真的輸入的是英文的標點符號,就把表達式中已有的逗號、引號都刪除,在確保是英文輸入模式下 重新輸入一遍逗號、引號等標點符號。
已添加的計算字段目前不可以作為表達式再被使用在其他計算字段中。
但若計算字段中所使用的原始基礎字段物理層被刪除,則該計算字段也將失效。
計算字段的使用
未聚合的計算字段可以用作維度,也可以在設置聚合方式後用作度量。
已聚合的計算度量只能用作度量,不能再轉為維度。
計算字段可以設置數據類型,目前支持三種數據類型:數值,文本,日期時間。
提醒:如果 設置計算字段的數據類型為文本,實際內容也為文本,然後又設置其聚合方式為sum,avg等聚合方法之一,最後實際執行查詢的時候會報告類型轉換錯誤而無法得到查詢結果。
與數據源中的原生字段生成的維度和度量相同,計算維度或計算度量也可以被使用在行列,屬性面板以及篩選器中。用戶也可以將計算字段進行維度和度量的轉換。
計算度量的類型
計算度量的類型有兩種:普通度量和聚合度量。
沒有使用 聚合函數的表達式構成的度量 為普通度量。
使用了聚合函數的表達式構成的度量為 聚合度量。
可以使用count() 或 count( distinct ) 函數將維度字段作為函數參數來構成去重聚合度量。
聚合度量的例子 :人均購買金額 sum(購買金額)/countd(用戶id),訂單成本占比 sum(訂單成本)/sum(訂單金額),但是如果用avg(點單成本/訂單金額) 算錯誤的。
普通度量和聚合度量不能混合使用,類似這樣的寫法是錯誤:sum(訂單成本)/訂單金額
普通度量,也就是不包含聚合函數的度量的聚合方式可以更改其聚合函數,
聚合度量沒有更改聚合函數的菜單選項了,聚合度量也不能再轉為維度。
聚合度量支持的聚合函數如下:
SUM,AVG,MIN,MAX,COUNT,COUNT distinct
常見應用場景
場景1:表中有年齡、姓名字段,想要展示不同年齡段人數占比。
創建數據集,新建維度字段‘年齡區間’,劃分不同年齡段:
2.將 name 字段右鍵-克隆維度,然後將副本轉化為度量,右鍵編輯修改名稱為‘計數’:
3.保存數據集,創建儀表板。添加餅圖控件,添加‘年齡區間’和‘計數’字段:
4.保存儀表板,即實現了展示不同年齡段人數占比效果。
場景2:數據可視化過程中經常遇到求特定條件下的數據占總量的比例,即占比問題,例如 個數占比:展示訂單等級為高級的數量占比,需要求得高級訂單與總訂單個數。
1.準備數據集
根據表company_sales_record新建數據集。
2.新建字段求高級訂單個數占比
新建度量用來展示高級訂單個數占比:
3.保存數據集,新建工作表
如圖選擇 區域、高級訂單個數占比、訂單數量 字段:
展示了各區域下高級訂單個數占比。
4.保存工作表
保存工作表,即解決了 個數占比 的問題。
原文鏈接請添加鏈接描述
QuickBI助你成為分析師——計算字段功能