什麼是計算量值?
本文說明計算量值,以及如何用來執行計算,而不需修改數據集查詢。
概述
在 AI/BI 儀錶板中,視覺化是依據 [數據] 標籤中定義的數據集進行的。計算量值提供了一種建立以及可視化新數據欄位的方法,而不需改變原始數據集。 例如,在包含專案、區域、價格和成本數據的銷售數據集中,您可能想要計算和可視化每個區域的獲利率。
下表顯示啟動資料集的範例:
項目 | 地區 | 價格 | 成本 |
---|---|---|---|
蘋果 | 美國 | 30 | 15 |
蘋果 | 加拿大 | 20 | 10 |
橘子 | 美國 | 20 | 15 |
橘子 | 加拿大 | 15 | 10 |
在沒有計算過的方式情況下,新增利潤率將需要建立一個新增額外利潤欄位的新資料集。 下表顯示產生的資料集:
地區 | 邊緣 |
---|---|
美國 | 0.40 |
加拿大 | 0.43 |
雖然此方法可運作,但新數據集是靜態的,而且可能只支援單一視覺效果。 套用至原始數據集的篩選條件不會影響新數據集,而不需要額外的手動調整。 您可以改用計算量值,以保留原始數據集,並動態定義公式來計算獲利率。
下列範例公式會根據匯總價格和成本值來計算獲利率:
(SUM(Price) - SUM(Cost)) / SUM(Price)
產生的導出量值可用於儀錶板視覺效果。 如果使用畫布上的小工具將篩選套用至數據集,則使用匯出量值的圖表會自動更新,以反映篩選的數據。
建立計算量值
此範例會根據 samples.nyctaxi.trips
數據集建立導出量值。 它假設使用者具備操作 AI/BI 儀錶板的一般知識。 如果您不熟悉如何撰寫 AI/BI 儀錶板,請參閱 建立儀錶板,以了解如何開始。
- 從 [數據] 索引標籤,使用下列語句建立數據集:
SELECT * FROM samples.nyctaxi.trips
將數據集重新命名 Taxicab 資料。
點選 計算度量。
[新建計算量值] 面板會在畫面右側開啟。 在 [名稱] 欄位 [] 中,輸入 [每英里的成本] []。
(選擇性)在 [描述] 文字欄位中,輸入「使用票價金額和車程距離來計算每英里的成本」。
在 [表達式] 欄位中,輸入
SUM(fare_amount) / SUM(trip_distance)
。點擊 建立。
按兩下結果面板中的 [架構] 索引標籤,以檢視導出量值及其相關聯的批註。 計算量值列在 [量值] 區段中,並以 fx 標示。 當您在視覺化中設定
GROUP BY
時,計算量度所關聯的值會被動態計算。 您無法在結果資料表中看到值。
在視覺化中使用計算的量值
您可以在視覺效果中使用先前建立的 每英里成本 量值。
- 點擊 [Canvas]。 然後,將新的視覺效果小工具放在畫布上。
- 使用視覺效果組態面板來編輯設定,如下所示:
- 數據集: 計程車數據
- 視覺效果: 柱狀圖
-
X 軸:
- 欄位: dropoff_zip
- 縮放類型: 類別型
- 轉換: 無
-
Y 軸:
- 每英里的成本
備註
匯出量值無法與數據表視覺效果搭配使用。
下圖顯示圖表。
包含計算量值的視覺效果會根據套用的篩選條件動態更新。 例如,如果您將 pickup_zip 篩選新增至畫布並選取篩選值,視覺效果會更新,只針對源自所選篩選值的車程顯示每英里的成本計量。 產生的條形圖會據以反映篩選的數據。
編輯計算量值
若要編輯量值:
- 按一下 [資料] 索引標籤,然後按一下與您要編輯的量值相關的資料集。
- 按兩下結果面板中的 [架構] 索引標籤。
- [措施] 區段會出現在欄位清單下方。 按兩下您要編輯之量值右邊的
kebab選單。 然後,點擊 編輯。
- 在 [編輯匯出量值] 面板中,更新您要編輯的文字欄位。 然後按下 更新。
刪除計算的度量值
若要刪除量值:
- 按一下 [資料] 索引標籤,然後按一下與您要編輯的量值相關的資料集。
- 按兩下結果面板中的 [架構] 索引標籤。
- [措施] 區段會出現在欄位清單下方。 按兩下您要編輯之量值右邊的
kebab選單。 然後按下 [刪除]。
- 在出現的 [刪除] 對話框中,按一下 [刪除]。
局限性
若要使用計算量值,下列條件必須成立:
- SQL 運算式的結果必須匯總。
- 表達式中使用的數據行必須屬於相同的數據集。
- 表達式不能包含外部數據表或數據源的呼叫。
支援的功能
以下表格列出支援的函式。 嘗試使用不支援的函式會導致錯誤。
聚合函數
所有計算量值都必須匯總。 支援下列匯總作業:
集合體 | 描述 |
---|---|
avg(expr) 或 mean(expr) | 傳回欄或表示式中的計算平均值 |
計數」 | 傳回群組中的資料列數目 |
計數(DISTINCT expr) | 傳回群組中不重複列的數目 |
求和(expr) | 傳回數據行或表示式中的值總計 |
max(expr) | 傳回數據行或表示式中的最大值 |
最小值(expr) | 傳回數據行或表示式中的最小值 |
百分位數(expr,percentage,[frequency]) | 傳回群組中在指定百分比處的 expr 的確切百分位數值 |
first(expr [,ignoreNull]) | 傳回群組 expr 的第一個值 |
last(expr [,ignoreNull]) | 傳回群組 expr 的最後一個值 |
算術運算
您可以結合表示式與下列算術運算:
表達 | 描述 |
---|---|
expr1 + expr2 | 傳回 expr1 和 expr2 的總和。 |
expr1 - expr2 | 從 expr1 減去 expr2 時,傳回差異。 |
乘數 * 多重和 | 傳回兩個表達式的乘積。 |
dividend / divisor | 傳回被除數除以除數的結果。 |
- expr | 傳回表達式的否定值。 |
+ expr | 傳回表達式的值。 |
加入兩個值。 如果發生錯誤,則會傳回 NULL 。 |
|
try_subtract(expr1, expr2) | 從 expr1 減去 expr2 。 如果發生錯誤,則會傳回 NULL 。 |
try_multiply(multiplier, multiplicand) | 將兩個數位相乘。 如果發生錯誤,則會傳回 NULL 。 |
try_divide(除數、除數) | 將被除數除以除數。 如果發生錯誤,則會傳回 NULL 。 |