如何为 PostgreSQL 创建自定义窗口函数? (运行平均值示例)

2023-11-23

我真的很想更好地了解创建在 PostgreSQL 中在 Windows 上运行的 UDF 所涉及的内容。我搜索了一些关于如何创建一般 UDF 的信息,但没有找到如何在窗口上操作的示例。

为此,我希望有人愿意分享如何编写 UDF(可以使用 C、pl/SQL 或 PostgreSQL 支持的任何过程语言)来计算窗口中数字的运行平均值的代码。我意识到有一些方法可以通过应用标准平均聚合函数和窗口语法(我相信语法之间的行)来做到这一点,我只是要求这个功能,因为我认为它是一个很好的简单示例。另外,我认为如果有平均函数的窗口版本,那么数据库可以保留运行总和和观察计数,并且不会在每次迭代时总结几乎相同的行集。


你必须查看postgresql源代码 postgresql/src/backend/utils/adt/windowfuncs.c 和 postgresql/src/backend/executor/nodeWindowAgg.c

没有好的文档:(——功能齐全的窗口函数只能用 C 或 PL/v8 实现——没有其他语言的 API。

http://www.pgcon.org/2009/schedule/track/Version%208.4/128.en.htmlPostgreSQL 实现作者的演示。

我只发现一个非核心实现 -http://api.pgxn.org/src/kmeans/kmeans-1.1.0/

http://pgxn.org/dist/plv8/1.3.0/doc/plv8.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何为 PostgreSQL 创建自定义窗口函数? (运行平均值示例) 的相关文章

随机推荐