使用 SQL 問題將篩選器新增至儀表板
如何在儀表板中新增篩選器小工具,並將其連結至 SQL 問題中的欄位篩選器變數。
本文涵蓋如何建立儀表板小工具,以篩選原生查詢中的資料。在儀表板篩選器中選取值將更新 SQL 問題中的結果。
此處的目標是了解如何將儀表板篩選器小工具連結至特殊變數類型,稱為欄位篩選器,我們將其插入問題的 SQL 程式碼中。
我們將涵蓋兩個範例:一個日期篩選器(接下來),以及一個具有下拉式清單的文字篩選器。
將欄位篩選器變數新增至 SQL 問題
讓我們從以 SQL 撰寫的問題開始,該問題顯示來自 Metabase 隨附的範例資料庫的每月訂單數。從任何 Metabase 頁面,在導覽列的右上角,按一下+ 新增,然後選取 SQL 查詢(或 原生查詢)。
這是 SQL 程式碼
SELECT DATE_TRUNC('Month', CREATED_AT) AS "Created",
COUNT(*) AS "Number of orders"
FROM orders
GROUP BY "Created"
ORDER BY "Created" ASC
現在,我們正在討論篩選資料,而精明的讀者可能已經意識到我們的 SQL 程式碼中沒有篩選器陳述式。沒有 WHERE
子句。意思是:即使我們將此問題新增至儀表板,並將篩選器小工具新增至該儀表板,該篩選器也不會對我們的 SQL 問題產生任何影響,因為我們的程式碼中沒有指定位置讓小工具插入其值。
讓我們透過將稱為欄位篩選器的特殊變數新增至我們的 SQL 問題來修正此問題。欄位篩選器是一種特殊類型的變數,可將變數對應到表格中的欄位(或欄)。
這是我們將新增的 SQL 程式碼
WHERE {{created_at}}
您可能會注意到 WHERE
子句中缺少 =
運算子。存在此縮寫語法是因為欄位篩選器會在幕後為您處理一些 SQL 程式碼。如需此處正在發生的詳細資訊,請查看欄位篩選器。
在加入 WHERE
子句後,我們的程式碼看起來像這樣
SELECT DATE_TRUNC('Month', CREATED_AT) AS "Created",
COUNT(*) AS "Number of orders"
FROM orders
WHERE {{created_at}}
GROUP BY "Created"
ORDER BY "Created" ASC
現在我們在 SQL 程式碼中有了變數,我們需要告訴 Metabase 如何使用該變數。當我們將變數新增至我們的程式碼時,Metabase 將滑出變數側邊欄。我們將 變數類型
設定為 欄位篩選器
,然後將該變數對應到我們資料庫中的欄位,以便 Metabase 可以知道它應該將哪種類型的篩選器小工具新增至問題。在此案例中,我們將變數對應到 orders
表格的 created_at
欄位。
請注意,我們可以將 SQL 變數命名為我們想要的任何名稱,但為了讓儀表板篩選器運作,我們必須將變數對應到適當的欄位。
目前,我們將篩選器小工具標籤保留為 建立於
,並保持 必要? 切換開關不動。如果變數的篩選器小工具缺少值,Metabase 將執行問題,就好像 WHERE
子句不存在一樣。
我們也可以選取篩選器小工具類型,儘管此小工具僅適用於我們的問題。讓我們選取 日期篩選器
類型。
讓我們儲存我們的問題。我們將其命名為 每月訂單數 - SQL
。
在我們將問題新增至儀表板之前,我們先快速繞道一下。
關於資料類型的繞道
當我們選取 created_at
欄位時,Metabase 知道欄位類型是 建立時間戳記
(請注意日曆圖示)。您可以透過瀏覽您的資料來了解每個表格擁有的欄位(欄)類型。
管理員可以在管理面板的資料模型標籤中編輯欄位類型,以及其他中繼資料設定。若要深入了解,請查看我們的關於中繼資料編輯的文件。
將儀表板篩選器小工具連結至欄位篩選器變數
因此,我們有一個在 WHERE
子句中具有欄位篩選器變數的 SQL 問題,現在是時候將該問題新增至儀表板了。
接下來,我們需要
- 建立儀表板。
- 將我們的問題新增至儀表板。
- 將篩選器小工具新增至該儀表板。
- 將該儀表板篩選器小工具連結至我們 SQL 問題中的欄位篩選器變數。
讓我們建立儀表板(我們將為我們的儀表板命名為非常缺乏想像力的名稱 具有篩選器小工具的儀表板
)。
然後我們將將我們的 SQL 問題新增至儀表板。
接下來,我們將將篩選器小工具新增至我們的儀表板。按一下鉛筆圖示以進入儀表板編輯模式,然後
- 按一下篩選器圖示以將篩選器小工具新增至儀表板。
- 在
我們想要篩選什麼
下,我們將選取時間
。 - 對於
篩選器的類型?
,我們將選取日期篩選器
。 - 接下來,我們需要將我們的小工具連結至我們問題中的欄位篩選器變數。按一下我們問題中心中的下拉式選單,然後選取我們的
建立於
欄位篩選器變數。 - 按一下畫面頂端的完成按鈕。
- 然後儲存儀表板。
現在我們都已接線完成,我們已準備好測試新的日期篩選器。此特定小工具類型為我們提供了豐富的選項。讓我們看看過去六個月的訂單。
將 SQL 問題連結至儀表板上的下拉式篩選器小工具
假設我們想要有一個儀表板篩選器小工具,依類別篩選產品,而且我們希望人員能夠從下拉式清單中選取可用的類別。若要設定此功能,我們將在我們的 SQL 查詢中放入欄位篩選器變數,並將其對應到 products
表格中的 category
欄位。然後我們將儀表板篩選器對應到該變數。讓我們逐步了解。
首先,建立儀表板。讓我們將其命名為「具有 SQL 問題和下拉式篩選器的儀表板」(以便我們的任務明確)。儲存儀表板。
接下來,提出新的原生/SQL 問題,以取得 products
表格中的所有欄位。若要依類別篩選產品,我們將在方括號中包含我們將稱為 category
的變數
SELECT
*
FROM
products
WHERE {{category}}
在 Metabase 彈出的變數側邊選單中,我們將如此設定此變數
- 變數類型:欄位篩選器。
- 要對應的欄位:產品表格中的類別欄位。
- 篩選器小工具類型:字串。
- 篩選器小工具標籤:類別(或您想要的任何名稱)。
- 使用者應如何依此變數篩選:下拉式清單。
- 必要:否。
- 預設篩選器值:留白(因此預設不會依產品類別篩選)。
儲存問題並將其新增至您的儀表板。編輯您的儀表板,並新增文字或類別篩選器。
選取為,以便人員從清單或搜尋方塊中選取一個或多個值。
將儀表板篩選器小工具對應到問題卡片上的類別變數。請確定使用者應如何依此欄篩選選項設定為「下拉式清單」。
按一下側邊欄底部的完成,然後儲存您的儀表板。您應該一切就緒。
延伸閱讀
下一步:SQL 技巧:排序圖表中的長條
保留您想要長條在圖表中顯示之順序的簡單技巧。