Navicat 博客

Navicat BI 中创建自定义字段:计算字段 2024 年 9 月 6 日,由 Robert Gravelle 撰写

在数据库设计和开发中,避免存储任何可以从其他字段计算或重建的数据是一种惯例。因此,在 Navicat BI 中构建图表时,你可能会缺少一些数据。但这不是问题,因为 Navicat BI 提供了专门用于此目的的计算字段。在今天的博客中,我们将使用“计算字段”来构建图表,该图标显示每个客户的平均租赁时间(即客户在归还电影前保留电影的时间长度)。与本系列的大多数文章一样,数据将从免费的 “dvdrental”样本数据库 中提取。

获取客户租赁信息

正如本系列之前的博客中提到的,我们应该在设计图表前创建数据源,因为我们需要指定图表使用的数据源。数据源引用连接中的表或文件/ODBC 源中的数据,并可从不同服务器类型的表中选择数据。创建新数据源后,我们可以点击“新建数据源查询”打开查询设计器。在这里,我们可以直接在编辑器中编写 SQL 语句,使用可视化查询生成器,或从 Navicat 导入查询。下面是 SELECT 语句,它将获取客户信息、租赁金额、影片租赁日期和归还日期:

customer_rental_info_data_source (111K)

保存查询并刷新数据后,我们就能看到所有查询字段和结果集:

customer_rental_info_data_source_with_data (253K)

现在,我们可以使用 rental_date 和 return_date 字段来计算租用期限。为此,请右键单击字段列表中的 return_date(在 macOS 上按住 Control 键),然后从弹出菜单中选择新建计算字段...:

new_calculated_field_menu_command (44K)

在“新建计算字段”对话框中,你可以查看到很多有用的函数,包括聚合函数、日期时间函数、逻辑函数等。我们将使用 DATEDIFF() 函数计算出租日期和返回日期字段之间的天数。该函数接受一个时间单位以及开始和结束日期。我们可以阅读函数列表下方的说明,了解更多信息。我们将传递一个“D”(日)作为单位,以及两个日期字段,如下所示:

new_calculated_field_dialog (116K)

对话框底部有一个预览,告诉我们是否得到了想要的结果。

单击“确定”按钮后,我们就可以在字段列表和结果中看到新字段了:

customer_rental_info_data_source_with_calculated_field (156K)

建立每个客户的平均租赁时间图表

由于每个客户 ID 都是一个单独的数据点,因此使用散点图可能效果不错。散点图是将单个数据点沿着 X 轴和 Y 轴绘制的数据图。我们将使用 customer_id 作为 X 轴,使用 rental_duration (Average) 作为 Y 轴。只需将字段拖动到图表设计器中的 X 轴和 Y 轴字段,将平均值聚合应用到 rental_duration 上,然后,就可以立即绘制图表了!

avg_rental_duration_per_customer_chart_in_design_mode (116K)

以下是显示模式下的完整图表:

avg_rental_duration_per_customer_chart_in_present_mode (104K)

补充:显示每位客户的租赁次数

虽然平均值很有用,但显示每位客户租用一部或多部电影的次数也很有用。为此,我们可以使用聚合函数。我们将计算结果集中的金额条目数,并按 customer_id 进行分组。下面是新计算字段对话框,其中调用了 AGGCOUNT() 函数:

aggcount_function (102K)

在图表设计器中,我们将把新的 number_of_rentals 字段拖到颜色槽中。添加升序排序后,图例项将按租用次数从少到多排序:

avg_rental_duration_per_customer_chart_in_design_mode_with_num_or_rentals (118K)

我们可以将光标悬停在单个数据点上,查看其详细信息。此时会出现一个工具提示,显示租用次数、customer_id 以及平均租用天数 rental_duration:

data_point_details (17K)

结语

本博客介绍如何在 Navicat BI 数据源和图表中使用计算字段。这些只是最新版商业智能(BI)的新功能之一。这也是自定义字段系列的结尾。如果你想试用 Navicat BI,你可以下载单机版进行 为期 14 天的全功能免费试用. It's available for Windows, macOS, and Linux operating systems.

Navicat 文章
频道条目
分享
文章归档