在資料庫設計和開發中,避免存儲任何可以從其他欄位計算或重建的資料是一個行之有效的做法。因此,在使用 Navicat BI 構建圖表時,你可能會缺少一些資料。但這並不是問題,因為 Navicat BI 專門提供了計算欄位來解決這個問題。在今天的文章中,我們將使用計算欄位來建立一個圖表,顯示每位客戶平均租賃時間,即客戶在歸還電影之前保留電影的時間。與本系列中的大多數文章一樣,我們會使用免費 「dvdrental」範例資料庫 中的資料。
擷取客戶租賃資訊
正如本系列先前的文章中所提到的,我們應在設計圖表之前建立資料來源,因為我們需要指定圖表所使用的資料來源。資料來源參考連線中的資料表或檔案/ODBC 來源中的資料,並且可以從不同伺服器類型的資料表中選取資料。建立新資料來源後,我們可以按一下「新增資料來源查詢」以開啟查詢設計器。在那裡,我們可以直接在編輯器中編寫 SQL 陳述式,使用視覺化查詢建立工具建立查詢,或從 Navicat 中匯入查詢。以下是一個 SELECT 陳述式,它將擷取客戶資訊以及租賃金額、電影租賃日期和歸還日期:

儲存查詢並重新整理資料後,我們應該會看到所有查詢欄位和結果集:

我們現在可以使用 rental_date 和 return_date 欄位來計算租賃期限。請以滑鼠右鍵一下欄位清單中的 return_date(在 macOS 上按住 Control 鍵並按一下),然後從選單中選取「新增計算欄位...」:

在「新增計算欄位」對話方塊中,你可以找到各種有用的函式,包括彙總函式、日期時間函式、邏輯函式等。我們將使用 DATEDIFF() 函式來計算 return_date 和 return_date 欄位之間的天數。此函式接受一個時間單位,以及開始日期和結束日期。我們可以閱讀函式清單下方的描述以得到更多資訊。我們將傳遞單位「D」(天)以及兩個日期欄位,如下所示:

對話方塊底部有一個預覽,顯示我們想要的結果。
按一下「確定」按鈕後,我們可以在欄位清單中看到新欄位和結果:

建立 Average Rental Duration Per Customer 圖表
由於每個客戶 ID 都是單獨的資料點,因此散佈圖應該很適合。散佈圖是沿著 X 軸和 Y 軸放置資料點。我們將使用 customer_id 作為 X 軸,並使用 rental_duration(平均)作為 Y 軸。只需將欄位拖到圖表設計器中的 X 軸和 Y 軸欄位中,對 rental_duration 套用平均彙總,然後,圖表即時產生!

以下是呈現模式下的完整圖表:

額外資訊:顯示每位客戶的租賃次數
雖然平均值對了解客戶的租賃情況很有幫助,但顯示每位客戶租借一部或多部影片的次數也可能很有用。我們可以使用彙總函式來達到此目的。計算結果集中金額項目的數量,並按 customer_id 將它們分組。以下的「新增計算欄位」對話方塊呼叫了 AGGCOUNT() 函式:

在圖表設計器中,我們將新的 number_of_rentals 欄位拖曳到「色彩」插槽中。新增遞增排序將依照租賃次數從最低到最高的順序排列圖例項目:

將遊標懸停在一個資料點上可以查閱其詳細資訊。工具提示顯示租賃次數、customer_id 以及平均 rental_duration(以天為單位):

總結
本文介紹了如何在 Navicat BI 資料來源和圖表中使用計算欄位。這些只是最新版本的 商業智慧(BI)中包含的新功能之一。這也標誌著自訂欄位系列到此結束。如果你想試用 Navicat BI,可以下載 14 天全功能免費試用版。它適用於 Windows、macOS 和 Linux 作業系統。