PostgreSQL 中的聚合 hstore 列

2023-11-27

我有一个这样的表:

                         Table "public.statistics"

id         | integer                | not null default nextval('statistics_id_seq'::regclass)
goals      | hstore                 | 

items:

|id    |goals                  |
|30059 |"3"=>"123"             |
|27333 |"3"=>"200", "5"=>"10"  |

我需要做什么才能按哈希中的键聚合所有值?

我想得到这样的结果:

select sum(goals) from statistics

return

|goals                 |
|"3"=>"323", "5"=>"10" |

基于 Laurence 的答案,这里有一种纯 SQL 方法,用于将求和的键/值对聚合成一个新的hstore using array_agghstore(text[], text[])构造函数。

http://sqlfiddle.com/#!1/9f1fb/17

SELECT hstore(array_agg(hs_key), array_agg(hs_value::text))
FROM (
  SELECT
    s.hs_key, sum(s.hs_value::integer)
  FROM (
    SELECT (each(goals)).* FROM statistics
  ) as s(hs_key, hs_value)
  GROUP BY hs_key
) x(hs_key,hs_value)

我也更换过to_number简单地转换为整数并简化了键/值迭代。

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

PostgreSQL 中的聚合 hstore 列 的相关文章

  • 方法“Boolean Contains(System.String)”不支持对 SQL 的转换

    方法 Boolean Contains System String 不支持对 SQL 的转换 查询是 IsQueryable 但这停止工作 foreach string s in collection1 if s Length gt 0 q
  • 如何手动设置auto_increment的下一个值?

    我手动向表中添加了一些行 并且还手动设置了 ID 自动增量 现在 当我尝试通过我的应用程序将新行添加到数据库表中时 我收到错误 创建的 ID 值已存在 如何手动设置下一个ID值 例如 在表中我必须有ID 那么如何告诉PostgreSQL 下
  • 使用sqlbulkcopy之前如何创建表

    我有一个 DBF 文件 我正在尝试导入该文件 然后将其写入 SQL 表 我遇到的问题是 如果我使用 SqlBulkCopy 它需要我提前创建表 但在我的场景中这是不可能的 因为 dbf 文件不断变化 到目前为止 这是我的代码 public
  • SQL注入方法

    注射程序是 SELECT UserId Name Password FROM Users WHERE UserId 105 or 1 1 但是 我的问题是注入查询在 sql 中是如何工作的 当你在代码中将查询作为字符串时 就像这样 Quer
  • ADO.NET 池连接无法重用

    我正在开发一个 ASP NET MVC 应用程序 该应用程序使用 EF 6 x 来处理我的 Azure SDL 数据库 最近 随着负载的增加 应用程序开始进入无法再与 SQL 服务器通信的状态 我可以看到有 100 个到我的数据库的活动连接
  • Postgresql 致命数据库系统正在启动 - Windows 10

    我已经安装了postgresql on windows 10 on usb disk 每天当我启动电脑工作时sleep并再次插入磁盘然后尝试启动postgresql我收到这个错误 FATAL the database system is s
  • MSSQL:如何使用代码编写存储过程创建脚本?

    我正在尝试使用一个数据库中存在但另一个数据库中不存在的 information schema routines 查询存储过程定义列表 SELECT t1 Routine Definition FROM server1 MyDatabase
  • 如何比较 Postgresql 中日期时间字段中的日期?

    在比较 postgresql Windows 中的版本 9 2 4 中的日期时 我遇到了一个奇怪的情况 我的表中有一列说update date与类型timestamp without timezone 客户可以仅使用日期搜索此字段 例如 2
  • 查询从同一表中的另一条记录获取值并按大于间隙阈值的差异进行过滤

    我将数据导入到 MS Access 中的临时表中 如下所示 我添加了需要使用 SQL 查询计算的 Gap 和 Previous Current 列 间隙阈值 是用户输入或范围提供给查询和例如是 300 GlobalID 对 ItemID 进
  • 通过字符串操作预防 PHP SQL 注入[重复]

    这个问题在这里已经有答案了 可能的重复 PHP 中防止 SQL 注入的最佳方法 https stackoverflow com questions 60174 best way to prevent sql injection in php
  • PostgreSQL & regexp_split_to_array + 取消嵌套

    我有这样的绳子 测试1 纽约 X 测试 2 芝加哥 Y 测试 3 宾夕法尼亚州哈里斯堡 Z 我需要的结果是 Column1 Column 2 Column3 Test 1 new york X Test 2 chicago Y Test 3
  • 了解涉及 3 个或更多表时 JOIN 的工作原理。 [SQL]

    我想知道是否有人可以帮助我提高对 SQL 中 JOIN 的理解 如果它对问题很重要 我会特别考虑 MS SQL Server 取 3 个表 A B A 通过某些 A AId 与 B 相关 和 C B 通过某些 B BId 与 C 相关 如果
  • SQL 查询结果为字符串(或变量)

    是否可以将SQL查询结果输出到一个字符串或变量中 我的php和mysql不好 假设我有数据库 agents 其中包含列 agent id agent fname agent lname agent dept 使用此查询 sql SELECT
  • 如何显示 RSpec 测试生成的 SQL 查询日志?

    我正在为我的 Rails 3 应用程序编写规范 我想测试数据库事务是否真的有效 如果能够看到我的应用程序在规范驱动下生成的 sql 查询 这将非常有帮助 有没有办法像在 Rails 控制台中一样查看查询 我正在使用 Rails 3 0 9
  • 尚未为此带有 SQL Server 的 DbContext .NET Core 配置数据库提供程序

    我一直用这个把头撞在墙上 并且一直在谷歌上搜索无济于事 我刚刚开始一个新的 ASP NET Core MVC 项目 我已将这两个包安装 更新为 2 2 0 Microsoft EntityFrameworkCore SqlServer Mi
  • Sql批量复制截断小数

    当我使用批量复制将十进制值从 C DataTable 插入 Sql Server 2005 时 值会被截断而不是四舍五入 DataTable 中的数据类型为 Decimal 数据库中的数据类型为Decimal 19 3 数据表中的值为 1
  • 常量值如何影响连接的 ON 子句?

    我最近发现 LEFT JOIN 的 ON 子句可能包含 1 1 等值 这让我感到不安 因为它打破了我对连接功能的看法 我遇到过以下情况的更详细版本 SELECT DISTINCT Person ID FROM Person LEFT JOI
  • 从复选框列表中选择循环生成的复选框中的一个复选框

    抱歉我的英语不好 在我的 ASP NET 网站上 我从 SQL 表导入软件列表 看起来像这样 但实际上要长得多 Microsoft Application Error Reporting br br Microsoft Applicatio
  • jDBI中如何进行内查询?

    我怎样才能在 jDBI 中执行这样的事情 SqlQuery select id from foo where name in
  • 将 CSV 复制到 Amazon RDS 托管的 Postgresql 数据库

    我有一个使用 Amazon 的 RDS 服务托管的数据库 我正在尝试编写一个 Web 服务来更新所述数据库 我遇到的问题是它不允许我使用 COPY 命令 因为我收到此错误 错误 必须是超级用户才能复制到文件或从文件复制 我正在使用我为数据库

随机推荐

  • 限制 API 调用。仅允许我的移动应用程序

    我想要我的网络服务器接受请求起源仅从我的移动应用 由于移动应用程序是客户端应用程序 这意味着用户可以拥有二进制文件并反编译它 或者使用 Fiddler 等工具来解释 API 调用并重建它们 例如 在控制台应用程序中 所以我想要的是一种方法生
  • 有哪些好的方法可以防止 JavaScript 多人游戏作弊?

    想象一个带有滚动关卡的太空射击游戏 有哪些方法可以防止恶意玩家修改游戏以谋取私利 他可以做的服务器端难以限制的事情是自动瞄准 在可见区域外窥视 加速黑客攻击和其他事情 有哪些方法可以防止这种情况发生 假设服务器是任何语言 并且客户端通过 W
  • 故障模块:kernelbase.dll。应用程序崩溃

    I Have an application done in Net framework 3 5 C Net I installed the application in Windows 7 But while opening some fo
  • Enum.IsDefined 带有标记的枚举

    我目前正在看书C 4 0 简而言之顺便说一句 我认为这是一本很棒的书 即使对于高级程序员来说也可以作为很好的参考 我回顾了有关基础知识的章节 发现了一个技巧 可以在使用标记枚举时判断枚举中是否定义了某个值 书中指出 使用Enum IsDef
  • 为什么大写字母不能用于定义值的模式匹配?

    为什么我可以使用小写字母作为名称 val a bC 1 2 1 2 match case a bC gt 并且不能使用大写字母 compile errors not found value A BC val A BC 1 2 compile
  • Django + PostgreSQL:填充范围内缺失的日期

    我有一张表 其中一列为date 每个日期可以有多个条目 date 2015 07 20 2015 07 20 2015 07 23 2015 07 24 我想使用 Django ORM 和 PostgreSQL 作为数据库后端来获取以下形式
  • gcc 链接共享库与符号链接

    我有两个库 例如两个烤面包机库libtoaster a so and libtoaster b so以及所有相关的主要 次要 修订符号链接 例如libtoaster a so 1 0 0等等 这两个库都实现了相同的烤面包机接口 但只是进行了
  • 使用 R,循环数据帧,并为循环中创建的对象分配适当的名称

    这是数据分析师一直在做的事情 特别是在处理缺少响应的调查数据时 通常首先对一组完整的数据矩阵进行乘法插补 将模型拟合到每个矩阵 然后组合结果 目前我正在手工做事并寻找更优雅的解决方案 想象一下有 5 个 csv工作目录中的文件 名为dat1
  • 如何运行 Github 存储库?

    我是一个编码新手 所以这可能是一个愚蠢的问题 我正在做一个 SQL 项目来学习该语言 我想知道是否有办法下载并执行 Github 存储库 我以前没有使用过 Github 谢谢 如果你是新手 我认为你应该学习如何使用git 您可以参考以下链接
  • 詹金斯没有声纳​​运行选项?

    我正在寻找在我们的詹金斯服务器上安装 sonarQube 我能找到的文档告诉我在中配置声纳运行器 Jenkins gt manage Jenkins gt Configure system 但是那里没有 声纳跑步者 选项 有一个 声纳 选项
  • 从AWS lambda@edge访问原始URL

    我正在尝试使用 AWS Cloudfront 上的 lambda edge 实现多个网站的 代理 我的设置大致是 DNS domain com gt some uuid cloudfront net Cloudfront 分发 Cloudf
  • VIM 折叠头中的语法高亮显示

    有没有办法让 VIM 继续对用作折叠标题的行应用格式 例如 我有以下代码 int foo int a int b int c 折叠后 我看到 4 lines int foo int a int b 但是 根据 Folded 类 整行都会突出
  • MySQL - 我们可以按列位置而不是名称排序吗?

    我在谷歌上查看过但找不到它 我们可以在 MySQL 中使用字段的位置进行排序吗 假设我有字段ID FirstName LastName Age但我想按字段 4 排序 我可以这样做吗ORDER BY FieldPos4按年龄订购 我还没有找到
  • 在 C# 字符串/字符编码中,GetBytes()、GetString() 和 Convert() 之间有什么区别?

    我们在将 Unicode 字符串转换为 UTF 8 字符串以通过网络发送时遇到问题 Start with our unicode string string unicode Convert u10A0 Get an array of byt
  • DataGridView 滚动事件(和 ScrollEventType.EndScroll)

    交接时DataGridView Scroll事件 您可以检查是否是滚动结束 当用鼠标拖动滚动条时 这大概是在释放鼠标按钮时 问题是这似乎永远不会发生 e Type从来没有ScrollEventType EndScroll 这有什么问题吗 如
  • 如何避免 DOM 解析添加 html doctype、 和 标签? [复制]

    这个问题在这里已经有答案了
  • Python 相当于 R c() 函数,用于数据帧列索引?

    我想使用列索引从 pandas 数据帧中选择特定的列 特别是 我想通过生成的列索引来选择列索引c 12 26 69 85 96 99 134 928 933 935 940 967 我想知道如何在 Python 中做到这一点 我在想类似下面
  • 在 Python 中拒绝负数作为异常

    我正在尝试运行一个接受数字的基本提示 然后对其运行递归函数 任何负数都会导致递归错误 因为函数无法处理它们 现在 我通过 Python 了解到 像这样的情况需要 尝试 例外 模型 这是我想出的 try choice int input En
  • C# 发布 .exe 并使用 cmd 向其发送参数

    我很确定这是基本的 但我只是没有成功做到这一点 我正在尝试创建一个控制台应用程序 它可以通过获取几个参数来执行 ABC 首先 我尝试运行这样简单的东西 static void Main string args foreach var s i
  • PostgreSQL 中的聚合 hstore 列

    我有一个这样的表 Table public statistics id integer not null default nextval statistics id seq regclass goals hstore items id go