新增自訂欄

在 Metabase 中建立自訂欄以計算新指標或清理您的資料

Metabase 可讓您使用來自其他欄位的資訊,即時建立新的欄位。例如,您可以

  • 新增兩個欄位
  • 擷取日期的一部分
  • 根據邏輯條件定義新的欄位

Metabase 將這些新的衍生欄稱為「自訂欄」。

若要建立自訂欄,您可以使用自訂運算式,其類似於試算表中的公式,或 SQL 中的函數。例如,您可以使用 substring 函數擷取文字的一部分,並使用 case 根據條件定義值。

在本教學課程中,我們將逐步說明自訂欄最常見的一些使用案例。我們將使用範例資料庫中的 分析事件 表格,其中包含虛構產品的事件資料。我們將建立自訂欄範例,這些範例對於產品分析可能有所幫助。

新增自訂欄

根據 分析事件 表格,開始新的查詢產生器問題。

若要新增自訂欄,請按一下「資料」區塊下方的灰色按鈕。

您會看到 Metabase 運算式編輯器。您可以使用快速鍵來組合或擷取欄位中的資料,或撰寫您自己的運算式。在您開始之前,有幾件事需要注意

  • 使用 [] 在運算式編輯器中參照欄位,例如 [Timestamp],或 [Accounts → Timestamp] 代表來自聯結表格的欄位。幸運的是,您不需要自行輸入完整的欄位名稱 (或括號),因為當您開始輸入時,Metabase 會為您提供自動完成選項。
  • 您可以在自訂運算式中使用運算子,例如 ORAND<=!=
  • 某些自訂運算式有資料庫限制。請查看我們的文件,取得完整清單。

SQL 專家注意事項

在 SQL 中,欄位運算 (例如 Total + TaxDateDiff(Created_At, Canceled_at, 'week')) 和彙總 (例如 SUM(Total)AVG(Quantity) ) 都在 SELECT 子句中定義。在 Metabase 查詢產生器中,這些是不同的查詢階段:欄位上的運算子和函數在自訂欄區塊中定義,但欄位的彙總在個別的「摘要」區塊中定義。您將無法在自訂欄中使用彙總,例如 SumCount,但您可以在「摘要」區塊中定義自訂摘要。

請查看我們關於如何摘要資料的教學課程,以深入瞭解。

擷取與組合欄位

您可以擷取日期或 URL 欄位的部分,並將欄位串連在一起。

例如,您可能會對事件活動在一天中的分佈方式感興趣:人們最活躍的時間是幾點?

  1. 若要新增自訂欄,請按一下「資料」區塊下方的灰色按鈕。

    您可以新增運算式,或擷取或組合欄位。

  2. 快速鍵下的運算式編輯器中,選取擷取欄位

    擷取快速鍵適用於 URL 欄位或時間戳記欄位。對於 URL 欄位,您可以選擇擷取主機、網域或子網域。對於時間戳記欄位,您可以擷取日期或時間的部分。

  3. 選取 Timestamp 欄位,並擷取 時辰

    您會看到自訂運算式編輯器,其中包含 hour([Timestamp]) 運算式。所有快速鍵所做的只是為您預先填寫運算式。

  4. 按一下完成以儲存自訂欄並關閉編輯器。
  5. 預覽結果。

Hour of day

您會在結果中看到新的欄位 時辰,對於凌晨 12 點到凌晨 1 點之間的時間戳記為 0,對於凌晨 1 點到凌晨 2 點之間的時間戳記為 1,依此類推。

處理文字

您可以使用自訂欄來清理、格式化或操作文字。

例如,「分析事件」中的 URL 格式為 www.piespace.example/<path>。由於每個 URL 的網域都相同,因此僅使用 path 部分進行分析是有意義的。但是擷取 URL 快速鍵只能擷取主機、網域或子網域。對於路徑,您需要撰寫自己的自訂運算式

  1. 按一下自訂欄區塊中的 + 建立新的自訂欄,並在運算式欄位中,輸入運算式

    regexextract([Page URL], "/.*")
    

    regexextract 使用規則運算式來抓取以 / 開頭的 Page URL 部分。如需深入瞭解 regexextract 運算式,請參閱我們的文件

  2. 將欄位命名為 URL 路徑,然後按一下完成
  3. 預覽結果。

    URL custom col

其他有用的文字函數:replacesubstringconcat。請參閱字串函數,取得完整清單。

處理日期

您可以使用日期自訂運算式來尋找兩個日期之間的差異、新增或減去期間,或擷取日期的部分。

例如,如果您對新訪客與舊訪客的行為差異感興趣,您可以建立一個欄位,其中包含帳戶建立與事件之間經過的天數。

  1. 按一下自訂欄區塊中的 + 建立新的自訂欄,並在運算式欄位中,輸入運算式

    datetimeDiff([Account → Created At],[Timestamp], "day")
    

    Created At 欄位位於 Account 表格中,而不是用作問題來源的 分析事件 表格中。但是,由於 Account 已連線到 分析事件 表格 (透過「帳戶 ID」欄位),因此 Metabase 可以在關於 分析事件 的問題中使用來自 Account 欄位的資料。您只需要使用 指定欄位來自不同的表格。

    如需深入瞭解 datetimeDiff 運算式,請參閱我們的文件

  2. 將欄位儲存為 建立以來的天數 (我們稍後會參照此名稱)。
  3. 預覽結果。

    Days since creation

其他有用的日期函數:datetimeAddconvertTimezonenow。請參閱日期函數,取得完整清單。

進行數學運算

您可以使用自訂運算式,對欄位和數字執行常見的數學運算:例如,您可以將兩個欄位相加、將欄位乘以 100,或將值 round 為整數。

在上一個步驟中,您使用 datetimeDiff 運算式計算了分析事件與帳戶建立之間的天數。如果您需要以週為單位計算該數字,您可以只使用相同的 datetimeDiff 自訂運算式和 "weeks" 週期,但這樣您只會得到整週數。如果您想知道帳戶已建立 3.5 週,您可以將天數除以 7

  1. 按一下自訂欄區塊中的 + 建立新的自訂欄,並在運算式欄位中,輸入運算式

    [Days since creation] / 7
    

    此處 [建立以來的天數] 是您在上一個步驟中建立的自訂欄的名稱 (您可以在定義新的自訂欄時參照其他自訂欄)。

  2. 將欄位儲存為 建立以來的週數,然後預覽結果。

    Weeks since creation

請參閱數學函數,取得數學函數的完整清單。

新增 if-then 邏輯

在前兩個步驟中,您計算了事件發生時帳戶的建立時間 (以週為單位)。假設您想要使用此資訊來查看新帳戶與現有帳戶的事件。為此,您首先需要根據帳戶在事件發生時的建立時間,將帳戶分類為「新」或「現有」。在 Metabase 中,邏輯陳述式是使用 case 陳述式定義的 (類似於 CASE SQL,但不同於試算表,試算表使用 IF 函數來達到此目的)。

  1. 按一下自訂欄區塊中的 + 建立新的自訂欄,並在運算式欄位中,輸入運算式

    case([Weeks since creation] < 52, "New", "Existing")
    

    新的欄位欄位,對於來自建立時間少於一年 (52 週) 的帳戶的事件,其值為 "新",否則為 "現有"

    如需深入瞭解 case 運算式,請參閱我們的文件

  2. 將欄位儲存為 帳戶狀態,然後預覽結果。

Account status

其他有用的邏輯函數:coalesceisnull。請參閱邏輯函數,取得邏輯函數的完整清單。

使用自訂欄來建立查詢與圖表

自訂欄的作用與表格欄相同,因此您可以在篩選器、摘要中使用它們,並建立圖表。

例如,我們可以查看新帳戶在一天中不同事件的分佈情況。

  1. 新增新帳戶與非空白 URL 路徑的篩選器

    您需要將篩選器運算從預設的「包含」變更。

    Filter operation

  2. 依時辰計算每個 URL 路徑的事件數。

    自訂欄應該只會彈出在群組依據區塊中。

    Summarize

  3. 視覺化

    當您在查詢產生器中按一下「視覺化」時,Metabase 會自動建立樞紐分析表。若要更佳地視覺化每日模式資料,您可以切換至折線圖或區域圖。

Final chart

順帶一提,螢幕擷取畫面上的圖表已開啟一些額外的視覺化設定,使其看起來更美觀。試驗「資料」索引標籤中的系列設定 (「資料」索引標籤中每個系列的「三點」選單),看看您是否可以讓圖表看起來相同。

那麼,對於新帳戶事件,我們可以說些什麼呢?我們看到所有事件都遵循類似的模式:大多數事件在早上和下午早些時候觸發,午餐期間則會下降。但是,對 /help 頁面的造訪在晚上 7 點左右還有另一個高峰。

後續步驟

自訂運算式不僅可以用於新的欄位,您還可以使用它們來建立複雜的篩選器或摘要。請查看關於自訂運算式的擴充教學課程。

下一步:使用儀表板篩選器

如何使用篩選器讓您的儀表板更實用且更具互動性

下一篇文章