前面的章節介紹過 Query 的 Parameter ,可以用來對搜尋結果進行條件篩選,
今天要介紹另外一個功能有點相似但原理大為不同的 Filter
Filter 有分成單選的下拉選單以及多選的方式,分別要將語法更改為
column_name::filter
column_name::multi-filter
就可以在該 Query 各個 Visualization 產生出對應的 Filter 。
SELECT
`TransactionID`,
`Date` AS 'date::multi-filter',
`Time`,
`CustomerID`,
`CardID` AS 'card_id::filter',
`GasStationID`,
`ProductID`,
`Amount`,
`Price`
FROM ccs.transactions_1k
Filter 會列出該欄位在資料中所出現的所有值當成選項來篩選顯示的資料,
而不需像 Parameter 還要指令哪些值當成過濾條件。
在 Filter 功能是,只要一改變值,「顯示」的資料就會立即改變,
類似 Table Visualization 選擇 Use for search 的結果,
而不會像 Parameter 要按下 Execute 才會重新 Query 出對應的結果。
換句話說是 Parameter 會影響 Query 出來的基底資料,
Filter、Use for search 只改變顯示的資料,不影響基底的 Query 結果。
但同時也伴隨著一些相對的缺點:
當在 Dashboard 使用的 Visualization 帶有 Filter 時,
可以個別對每一個 Visualization 使用各自的 Filter;
或者也可以使用 Dashboard 的 Use Dashboard Level Filters 功能,
讓 Dashboard 列出所有 Visualization 用到的 Filter ,
同時對所有的 Visualization 進行 Filter,
而 Visualization 仍能使用自己的Filter 而不影響到其他區塊
Parameter 要到 Dashboard 的層級是要在原 Query 勾選 Global
Filter 則是在Dashboard 中勾選 Use Dashboard Level Filters
可以在 Query 中使用「Download Dataset」
或是在 Dashboard 針對需要的 Visualization ,
分別選擇下載成 CSV 或是 Excel File。
下載的資料是 Query 後的結果,也就是 SQL 出來的資料以 Table 方式呈現,
而 Filter、Use for search 影響的是「顯示」的資料,
所以 Download 的資料並不受影響,但 Parameter 就會!
注意如果是 Windows 系統,而且 Query 出的內容有中文,
下載成 CSV 會有亂碼,只能用 Excel
在公司的使用經驗中比較少用 Filter,而主要是以 Parameter 為主,
也能避免在 Download files 需要跟大家解釋為何 Filter 看到的資料與下載的不同。
而下載檔案的情境滿常是想要比對圖表的數據是否正常,會看檔案的原始資料,
或是要暫時做一些試驗性的研究,就會直接以檔案來處理,
畢竟用 local file 處理還是比遠端資料庫快,
配上自己熟悉的工具方便各自操作,像我是以 Python 用 csv module 處理,
非技術員的同事就直接用 Excel。
ps. 文章同步發表於 Medium