提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:吉伟伟|2024-12-09 10:59:18.863|阅读 5 次
概述:PostgreSQL 的突出特点之一是广泛支持用户定义的函数和数据类型。Navicat for PostgreSQL 和 Navicat Premium 都有专门的图形用户界面(GUI),可以轻松编写与数据库无缝集成的自定义函数和聚合。本文我们将创建一个在 DVD Rental database 中使用的聚合,按类别连接电影标题。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
相关链接:
PostgreSQL 的突出特点之一是广泛支持用户定义的函数和数据类型。这允许开发人员创建自定义转换、运算符和聚合函数。聚合函数是对数据执行复杂计算和转换的有效方式,超越了 SUM、AVG 和 COUNT 等标准 SQL 聚合函数。Navicat for PostgreSQL (最新版下载试用)和 Navicat Premium (最新版下载试用)都有专门的图形用户界面(GUI),可以轻松编写与数据库无缝集成的自定义函数和聚合。我们只需提供一些细节,Navicat 就会为我们生成 pgSQL 语句!在本文中,我们将创建一个在 DVD Rental database 中使用的聚合,按类别连接电影标题。
关于聚合
聚合是 SQL 的一项基本功能,允许对一组记录执行计算或转换,并返回单一结果。最常见的聚合函数是 SUM、AVG、COUNT、MIN 和 MAX,它们允许你分别通过计算总数、平均值、计数、最小值和最大值来快速汇总数据。
然而,SQL 提供的内置聚合函数并不总能满足应用程序的特定需求。这时,创建自定义聚合的功能就变得非常有用。自定义聚合允许你按照自己的逻辑来汇总和转换数据,超越了标准 SQL 聚合的范围。 这一过程通常包括定义一个状态转换函数,每一行都要调用该函数来更新累加器,以及定义一个可选的最终函数,调用该函数来生成最终的聚合结果。
生成转换函数和最终函数
转换函数 array_append_state() 将为每一行调用,以更新聚合状态。
访问 Navicat 的函数编辑器,请单击主按钮栏中的函数按钮,然后单击对象工具栏中的“新建函数”:
Navicat 将从主函数定义开始。在这里,我们将提供函数名称、输入参数和主体:
CREATE FUNCTION "public"."array_append_state" (current_state text[], new_value text) RETURNS text[] AS $BODY$ BEGIN RETURN array_append(current_state, new_value); END $BODY$ LANGUAGE 'plpgsql' VOLATILE;
当我们完成函数定义后,我们可以点击“保存”来创建函数。
现在我们将返回到对象选项卡,并点击“新建函数”来创建最终函数。
array_to_comma_string() 函数将获取一个电影题目数组,并在每个元素之间插入逗号:
CREATE FUNCTION "public"."array_to_comma_string" (state text[]) RETURNS text AS $BODY$ BEGIN RETURN array_append(state, ', '); END $BODY$ LANGUAGE 'plpgsql' VOLATILE;
创建 comma_concat() 聚合函数
现在我们可以将两个函数插入 Navicat 的聚合编辑器。我们可以通过单击主按钮栏中的“其它”按钮,然后从弹出的菜单中选择“聚合”来访问编辑器:
在表单中,我们将输入类型设置为“文本”,输入状态类型为“text[]”,并提供状态和最终函数。同时,确保初始条件是一个空数组(“{}”):
点击“预览”选项卡,我们就能看到生成的 SQL:
CREATE AGGREGATE "public"."Untitled" (In "pg_catalog"."text") ( SFUNC = "public"."array_append_state", STYPE = "pg_catalog"."text[]", FINALFUNC = "public"."array_to_comma_string", INITCOND = "{}", PARALLEL = UNSAFE ); ALTER AGGREGATE "public"."Untitled"("pg_catalog"."text") OWNER TO "postgres";
请注意,聚合体的名称是“无标题”。当我们点击“保存”按钮时,Navicat 将提示我们输入名称,并使用我们提供的名称执行命令。
使用自定义聚合
现在,我们可以像调用其他函数一样调用聚合函数。下面是一个按类别获取电影列表的查询:
SELECT c.name AS category, comma_concat(f.title) AS movies FROM category c JOIN film_category fc ON c.category_id = fc.category_id JOIN film f ON fc.film_id = f.film_id GROUP BY c.name ORDER BY c.name;
结语
在文章中,我们在 Navicat Premium 创建了一个自定义 PostgreSQL 聚合,并在 DVD 租赁数据库中使用它来将电影标题按类别进行连接。
产品试用下载、价格咨询、优惠获取,或其他任何问题,请联系。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
文章转载自:慧都网Navicat Premium 是一套数据库管理工具,让你使用一个程序即可同時连接到 MySQL、MariaDB、SQL Server、SQLite、Oracle 和 PostgreSQL 数据库。
Navicat for MariaDB 为 MariaDB 数据库管理提供了一个原生环境。你可以直观地设计数据库结构、运行 SQL 查询和脚本、管理 MariaDB 用户及其权限。
长期以来,Navicat 的数据库管理和开发工具一直都有将协同合作融合到设计理念中。本文将重点介绍如何使用 Navicat Premium 17 共享数据库对象。
在日常操作 Excel 文档时,复制行、列和单元格是非常常见的需求。本文将介绍如何使用 Spire.XLS for .NET 和 C# 在 Excel 中复制行、列和单元格并保留格式。
本文将探讨如何使用 Spire.XLS for .NET 在 C# 程序中导入 Excel 数据到数据库以及导出数据库到 Excel 文件,实现数据在 Excel 和数据库之间无缝流转。
在本文中,我们将向您展示如何逐步执行此操作,告诉您什么是 SCORM,为什么需要使用它,并列出我们测试过的最佳 SCORM 转换工具之一——iSpring Suite。
Navicat for MySQL 是一套管理和开发 MySQL 或 MariaDB 的理想解决方案。
Navicat PremiumNavicat Premium 是一套数据库管理工具,让你使用一个程序即可同時连接到 MySQL、MariaDB、SQL Server、SQLite、Oracle 和 PostgreSQL 数据库。
Navicat for PostgreSQLNavicat for PostgreSQL是一套专为PostgreSQL设计的强大数据库管理及开发工具
Navicat for MariaDBNavicat for MariaDB 为 MariaDB 数据库管理提供了一个原生环境。你可以直观地设计数据库结构、运行 SQL 查询和脚本、管理 MariaDB 用户及其权限。
Navicat for SQL ServerNavicat for SQL Server 是一套专为 Mircosoft SQL Server设计的强大数据库管理及开发工具
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢