如何在 Looker 中將指標轉換為維度

根據 SQL 的一般規則 (以及 Looker 的擴充功能),您無法依匯總函式 (在 Looker 中以「度量」表示) 的結果分組查詢。您只能依未匯總的欄位 (在 Looker 中以「維度」表示) 進行分組。如果您嘗試在 Looker 中匯總評估資料,會看到以下錯誤

Measures with Looker aggregations (sum, average, min, max, list types) may not reference other measures.

如果您需要將評量 (COUNT、SUM、AVG、MAX 等) 變更為維度,以便依據該維度分組匯總 (例如 COUNT 的 SUM 或 SUM 的 AVG)、篩選 (在 WHERE 子句中,而非 HAVING 子句),或在探索中樞紐,該怎麼辦?

使用衍生表來將評估指標轉換為維度

在 Looker 內部,這個解決方案稱為「將測量指標轉換為維度」。這是因為您將測量指標重新定義為 維度。方法是建立衍生資料表,其中包含您想在 SQL 定義中加入維度的評估資料。

程序

以下範例是根據電子商務資料集範例而來。本例的目標是建立以現有「總收益」type: sum 指標為基礎的 type: average 指標。

以下步驟概述如何產生以 SQL 為基礎的衍生資料表。您可以選擇建立以 LookML 為基礎的衍生資料表 (也稱為原生衍生資料表 (NDT)),做為 SQL 的替代方案。
  1. 首先,請設定探索查詢。 選擇適當的欄位,包括要轉換為維度的評量指標。

    在這個範例用途中,「探索」資料表格會顯示「總收益」,並按照「使用者狀態」和「使用者 ID」分組:

  2. 在「資料」表格的「SQL」分頁中,選擇「在 SQL Runner 中開啟」,即可在 SQL Runner 中開啟查詢:

  3. 在 SQL Runner 中執行查詢 (按一下「Run」按鈕) 並確認結果後,請從 SQL Runner 齒輪選單中選擇「Add to Project」選項,開啟「Add to Project」彈出式視窗。此時,您需要在衍生資料表 SQL 中移除任何資料列限制子句,確保查詢中包含所有所需結果。

    您也可以從選單中選擇「Get Derived Table LookML」,然後手動將產生的 LookML 複製並貼到專案中。
  4. 在「Add to Project」彈出式視窗中,從「Project」下拉式選單中選取專案名稱,然後輸入衍生資料表檢視畫面檔案的名稱,並選取「Add」
  5. 派生表格現在位於檢視畫面檔案中,您可以建立匯總維度化指標的指標。舉例來說,您現在可以為新的總收益維度 order_items_total_revenue 建立 type: average 評估資料:
          dimension: order_items_total_revenue {
            type:  number
            sql: ${TABLE}.order_items.total_revenue ;;
            value_format_name: usd
          }
    
          measure: average_revenue {
            type:  average
            sql:  ${order_items_total_revenue} ;;
            value_format_name: usd
          }
        
  6. 請仔細檢查衍生表格中是否定義了主鍵
  7. 彙整新檢視畫面至原始探索 (或建立新的探索),以便使用新欄位建立查詢和內容。

結論

使用 Looker 衍生資料表將測量指標轉換為維度,即可發揮新功能,並進一步運用資料進行深入分析。您可以依維度化指標分組 、在 WHERE 子句中篩選 (而非 HAVING)、樞紐分析,並根據維度化指標建立其他維度,進而將探索查詢和內容帶往下一個維度。

如要進一步瞭解如何建立及使用衍生表格,以及相關考量和效能最佳化訣竅,請參閱「衍生表格」說明文件。