SQL 編輯器

如果您需要提出無法使用查詢產生器表達的問題,則可以使用 SQL

什麼是 SQL?

SQL(發音為「sequel」,有時也發音為 S.Q.L. — 人們對此爭論不休)代表結構化查詢語言,是一種廣泛使用的標準,用於從資料庫取得資料。我們現在不會嘗試教您關於 SQL 的所有知識,但若要深入了解,請查看使用 SQL

即使您不了解 SQL 或如何使用它,也值得了解它在 Metabase 內部的運作方式,因為有時其他人會分享對您可能有用的以 SQL 為基礎的問題。

開始新的 SQL 查詢

在主導覽列中選取 + 新增。如果您具有使用 SQL 編輯器的權限,您會看到一個選項可以啟動新的 SQL 查詢,旁邊有一個小主控台圖示。

按一下 SQL 查詢 後,您會看到一個編輯器,您可以在其中以 SQL(或您的資料庫的原生查詢語言)撰寫和執行查詢。

SQL editor

若要試用,請確定您已選取範例資料庫,然後貼上這段簡短的 SQL 查詢

SELECT
    sum(subtotal),
    created_at
FROM orders
GROUP BY created_at;

如果您還不了解這段程式碼,請別擔心。按一下藍色的 執行查詢 按鈕以執行您的查詢。

您會注意到,傳回的表格與您使用查詢產生器要求 Orders 表格中 Subtotal 的總和,並依 Created At 日期分組時的表格相同。

執行查詢選取

您可以按下 Windows 和 Linux 上的 ctrl + enter 鍵,或 Mac 上的 ⌘ + return 鍵來執行 SQL 查詢。您也可以只執行查詢的一部分,方法是先醒目提示您想要執行的部分,然後再按一下執行按鈕或使用執行快速鍵。

使用 SQL 提出的問題可以儲存、下載、轉換為模型,以及新增至儀表板,就像使用查詢產生器提出的問題一樣。

您也可以在 SQL 查詢中參考模型和已儲存的問題

使用 ?? 而非 ? 運算子

如果您在 PostgreSQL 中使用 ? JSON 運算子,請改用對等的 ?? 運算子。

這是因為 JDBC 的限制,它將單一問號 ? 解釋為參數預留位置。

格式化 SQL 查詢

您可以按一下編輯器側邊欄中的「文件」圖示來格式化 SQL 查詢。

格式化前 格式化後
a SQL query before formatting a SQL query after formatting

格式化工具僅適用於 SQL 查詢,不適用於 SQLite 和 SQL Server。

使用 SQL 篩選器

如果您或其他人撰寫的 SQL 查詢包含變數,則該問題的畫面頂端編輯器上方可能會包含篩選器小工具。篩選器小工具可讓您在執行 SQL 查詢之前修改它,從而變更您可能取得的結果。

SQL filter

撰寫使用變數或參數的 SQL 查詢可能非常強大,但它也比較進階,因此如果您想要深入了解,該主題有自己的頁面。

SQL 片段

您可以使用SQL 片段來儲存、重複使用及共用 SQL 程式碼,以用於使用 SQL 編輯器撰寫的多個問題中。

Metabase 如何執行 SQL 查詢

當您從 SQL 編輯器執行查詢時,Metabase 會將查詢完全依照撰寫的方式傳送至您的資料庫。Metabase 中顯示的任何結果或錯誤都與您直接對資料庫執行查詢時取得的結果或錯誤相同。如果您的查詢的 SQL 語法與資料庫使用的 SQL 方言不符,則您的資料庫將無法執行查詢。

問題版本歷史記錄

對於問題、儀表板模型,Metabase 會保留前 15 個版本的項目版本歷史記錄。

請參閱歷史記錄

使用查詢產生器探索 SQL 問題結果

在沒有參數的已儲存 SQL 問題中,您會取得 探索結果 按鈕。它會建立新的查詢產生器問題,並使用 SQL 問題結果作為資料來源。

Explore results button

SQL 問題中的鑽取

使用 SQL 建立的視覺化效果具有有限的鑽取功能

  • 您可以按一下資料點來篩選 SQL 查詢的結果、放大時間序列或地圖,以及使用一些欄標題動作
  • 您將無法向下鑽研至未彙總的記錄、變更時間粒度,或依類別或位置細分。

快取結果

請參閱快取問題原則

深入了解

閱讀其他Metabase 版本的文件。