具有多个参数的 PostgreSQL 聚合

2023-12-23

我一直在尝试在 PostgreSQL(8.4 或 9.1)中创建接受一个或多个选项参数的聚合。

一个例子是创建一个PL/R计算第 p 个分位数的扩展,其中0 <= p <= 1。这看起来像quantile(x,p),并作为查询的一部分:

select category,quantile(x,0.25)
from TABLE
group by category
order by category;

Where TABLE (category:text, x:float).

建议?


希望这个例子能有所帮助。您需要一个接受(累加器,聚合参数)并返回新累加器值的函数。尝试一下下面的代码,这应该会让您感受到它们是如何组合在一起的。

BEGIN;

CREATE FUNCTION sum_product_fn(int,int,int) RETURNS int AS $$
    SELECT $1 + ($2 * $3);
$$ LANGUAGE SQL;           

CREATE AGGREGATE sum_product(int, int) (
    sfunc = sum_product_fn,
    stype = int, 
    initcond = 0
);

SELECT 
    sum(i) AS one,     
    sum_product(i, 2) AS double,
    sum_product(i,3) AS triple
FROM generate_series(1,3) i;

ROLLBACK;      

这应该给你类似的东西:

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

具有多个参数的 PostgreSQL 聚合 的相关文章

随机推荐

  • Xcode 9.0.1 Interface Builder 100% CPU 打开 iOS Storyboard

    昨晚 Xcode 自动更新到版本 9 0 1 9A1004 今天 我尝试打开一个现有项目 但我的 iOS 故事板文件陷入了永不停歇的旋转器中 并且活动监视器报告 Interface Builder 使用 100 CPU 我有第二台 MacB
  • 进口和依赖

    我读过两篇最近讨论依赖和导入的帖子 2 14 0 即将到来的命名空间 依赖 导入更改 请一些定义 使用 https stackoverflow com questions 7880355 upcoming namespace depends
  • Python从内存中运行exe[重复]

    这个问题在这里已经有答案了 exe requests get url content run exe subprocess run exe shell True stdout subprocess PIPE stderr subproces
  • 将当前更改放入新的 Git 分支中 [重复]

    这个问题在这里已经有答案了 我一直在主分支上编辑一些模块 但尚未提交它们 我现在认为这些更改实际上应该发生在实验分支上 而不是主分支上 如何将这些编辑放入实验分支中 将它们复制到某个临时位置 创建分支 然后将它们复制回来 我该如何配置 以便
  • Angular JS 路由不起作用

    index html 看起来像
  • 为 Linux 创建可移植的 Python(本地安装)

    我正在寻找创建以下内容 一个可移植版本的 python 可以在任何系统上运行 安装任何以前版本的 python 或未安装 python 并预先配置了各种 python 包 即 django lxml pysqlite 等 我发现最接近上面的
  • 无法解析来自根提供程序的范围服务。 ASP.NET MVC 应用程序

    我正在使用 Adam Freeman 的 Pro ASP NET Core MVC 6th Edition 制作商店应用程序 书中的例子是用Core 1 0做的 我用的是Core 3 0 在尝试将数据播种到我的数据库 entityFrame
  • github:没有可用的受支持的身份验证方法

    我使用 github 并在过去在我的笔记本电脑上成功添加和同步了文件 最近我开始得到 PuTTY 致命错误 已断开连接 没有可用的支持的身份验证方法 运行后 git pull origin master 或push however ssh
  • 如何阻止html模板转义

    我有一个 html 模板 我想在其中插入一些模板本身外部的 JavaScript 代码 在我的模板数据结构中 我创建了一个字符串字段JS string并调用它 JS 问题是浏览器中的所有内容都被转义了 换行符是 n lt and gt ar
  • 真正的 MVVM 和第三方控件

    在 True MVVM 模型中 我们不期望 xaml cs 中隐藏任何代码 也不期望 viewModel 具有视图引用 然而 所有第三方控件都不能为 True MVVM 提供良好的支持 就我而言 我使用 Infragistics xamDa
  • C/C++ 中的可变参数函数和参数赋值

    我想知道在 C C 语言中是否可以以键值形式将参数传递给函数 例如在 python 中你可以这样做 def some function arg0 default value arg1 value1 passed value some fun
  • 动态向groovy中的对象添加属性或方法

    是否可以在 Groovy 中动态向对象添加属性或方法 这是我到目前为止所尝试过的 class Greet def name Greet who name who 0 toUpperCase 1 1 def salute println He
  • 显示文件夹中的图像(幻灯片)

    我一直在尝试谷歌搜索并找出如何制作一个 php 脚本 该脚本将自动制作文件夹中图像的幻灯片 我只设法让图片自动显示在 php 页面上 但我可以不知道如何让它们一张一张地滑动 就像幻灯片一样 Here http iseeit no page
  • HTML5 表单验证的条件规则

    我想知道是否可以根据其他元素状态设置 必需 元素 例如 假设我有一个输入元素 当且仅当用户选中特定复选框时 我希望该元素成为 必需 首先 这是否可以在不使用 JavaScript 的情况下完成 其次 如果我们使用 JavaScript 如果
  • tcl lsearch 在列表列表中

    Tcl中有一个list列表 set somelist aaa 1 bbb 2 ccc 1 如何搜索列表中第一项是 bbb 的元素 我尝试了这种方法 但它不起作用 lsearch somelist bbb Thanks Use index 它
  • 具有对象类型支持的 .Net 第三方 Oracle 提供程序

    我正在寻找完全支持 Oracle 对象类型 如几何图形 的第三方 Oracle Data Provider for Net ADO NET 我愚蠢地使用了 ODP NET 现在我付出了代价 它有令人难以置信的错误 我刚刚到达终点 继续崩溃
  • Python 对象的可选链接:foo?.bar?.baz

    在 JavaScript 中 如果我不确定链中的每个元素是否存在 不是未定义 我可以这样做foo bar 而如果bar不存在于foo 解释器会默默地将其短路并且不会抛出错误 Python中有类似的东西吗 现在 我一直这样做 if foo a
  • 尝试在 vscode powershell 终端中使用命令 git init 但出现错误: git : The term 'git' is not recognize as the name of a cmdlet

    我正在尝试使用该命令git init 但是 我收到此错误 git The term git is not recognized as the name of a cmdlet function script file or operable
  • Azure Functions - 无法加载文件或程序集“Microsoft.WindowsAzure.Storage”

    即使我在 project json 文件中指定了依赖项 我有一个天蓝色函数也会抛出以下错误 无法加载文件或程序集 Microsoft WindowsAzure Storage Version 8 1 1 0 Culture neutral
  • 具有多个参数的 PostgreSQL 聚合

    我一直在尝试在 PostgreSQL 8 4 或 9 1 中创建接受一个或多个选项参数的聚合 一个例子是创建一个PL R计算第 p 个分位数的扩展 其中0 lt p lt 1 这看起来像quantile x p 并作为查询的一部分 sele