问题标签 [array-agg]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
4180 浏览

sql - 如何使用查询 array_agg 制作这个 sql?

我想查询

并且根据它的结果r,我需要进行n查询,n长度在哪里 。例如:lr

l => 2 然后

l好的,如果太大,您可以看到它的去向。选择太多,对数据库的访问太多。有没有更好的方法来实现这样的最终结果:

我听说过关于array_aggpostgres 的功能。也许这就是答案?无论如何,这些是我的表格描述:

并提前谢谢你:D

0 投票
2 回答
40448 浏览

sql - 如何将两个 PostgreSQL 列聚合到一个用括号分隔的数组

我想使用 group-by 查询连接两列,从而生成一个用括号分隔的数组。我知道这个问题与这个问题有关,但像往常一样,我的用例有点不同。

一个简单的例子(也作为SQL Fiddle)。目前我的查询返回以下内容:

但是我想连接/聚合X/Y列以获得以下内容:

目前,我尝试将列连接为一个,如下所示:

返回:

并使用array_agg()

导致:

我觉得我越来越近了,但非常感谢您的帮助。

0 投票
2 回答
4657 浏览

sql - SQL 数组聚合和连接

在我的 Postgres 数据库中,我有 3 个表。一换users一换comments,一换一映射二user_comment_map。以下是表格的外观:

我正在尝试编写导致以下对象的 SQL 查询:

我尝试使用joinsarray_agg但无法获取该格式的数据。任何帮助将非常感激。注意:我也在使用 knex 来构建查询,但我认为 knex 不能在不求助于的情况下处理这样的事情knex.raw

0 投票
1 回答
1308 浏览

postgresql - 为什么 array_agg() 在 postgresql 中返回空数组?

我有一个名为 start 的整数类型列。我想通过该列的值创建一个数组。这似乎很简单,我使用了 array_agg(),但它给出了空数组作为输出。以下是我的列数据

以下是我用来制作数组的查询:

为什么它给出空数组?

0 投票
2 回答
4457 浏览

postgresql - array_agg 在 postgres 9.4 中具有不同的作品,但在 postgres 9.6 中没有

我有一个使用带有 distinct 作为参数的 array_agg 的查询,并且在 postgres 9.6 上不被接受。

我创建了这个示例来说明这个问题:

postgres 9.4

postgres 9.6

为了在 postgres 9.6 上得到这个结果,我需要改变什么?

谢谢。

这就是我检查功能的结果:

现在,由于pozs的评论,我发现了这个问题。我删除了聚合函数的公共定义并且它起作用了。

问题出在我正在处理的数据库上,因为我发现有些人说该示例对他们有用,所以我创建了一个新数据库并运行该示例。然后唯一的变化是聚合函数定义。

0 投票
3 回答
345 浏览

sql - 在 dict 或 json 中分组表

我有两个具有 1:M 关系的表,我想将此关系分组为 dict 或 JSON。

我的数据类似于:(id,provider_code,provider)

我正在寻找的是这样的:

我不介意聚合是否为 JSON 格式,但我需要它易于解析。

我已经尝试过使用 postgres 函数 array_agg,但是虽然我已经解析为 varchar,但仍然出现错误:

这是我正在尝试的查询,但我知道这是参数的问题,我需要一种方法来传递 2 个参数,而不是只传递一个。

表定义: 属性表:

"id";"integer"

提供者表:

0 投票
1 回答
2970 浏览

postgresql - 将返回的 SETOF 转换为 PL/PgSQL 中的数组(特别是)

我知道有 的过程SELECT array_agg(f) FROM (SELECT blah FROM stuff) f,这在 SQL 中很棒,但是在 PL/pgSQL 中编写函数时,有没有简写方法?

我正在尝试将 JSON 键放入可用于查看长度的数组中。就像是...

v_len := array_length( array_agg(json_object_keys(myjson)), 1);

而不是 long, DECLARE a variable, do a SELECT array_agg(f) INTO ...,我一直在做。我似乎有数百个使用相同的 SQL 字符串的实现,但我真的想减少我的代码,我的手指因所有多余的输入而麻木。

这种速记方法我缺少什么?

0 投票
0 回答
24 浏览

sql - POSTGRESQL - UNNEST 函数在 LINUX 中不起作用

我显示了重复的行。虽然我已经添加了'DISTINCT',但当我运行查询重复记录时显示。

这里有什么问题吗?

0 投票
2 回答
5329 浏览

sql - 相当于 Oracle XE 11.2 中 PostgreSQL 的 array_agg

我有一个 Oracle 11g XE 数据库,我有一个查询结果集:

我想在同一行中获得所有相关类别的不同ID,以逗号分隔,如下所示

我之前使用过 Postgres 并在array_agg那里帮助了我。如何在 Oracle 11g XE 中获得相同的结果?

0 投票
1 回答
820 浏览

sql - 尝试 ORDER BY 时间戳时,ARRAY_AGG 被 GROUP BY 中断

我为我的问题准备了一个SQL Fiddle -

给定下表:

填充以下测试数据:

我可以使用以下查询:

用于以“gid”作为键和数组值的 JSON 对象获取表记录:

但是我错过了一件小事,只是想不通:

我需要通过“创建”来订购数组。

所以我添加ORDER BY created ASC到上面的查询中,也必须添加GROUP BY gid, created(你可以看到上面查询中注释掉的有问题的代码)。

然而,这会破坏array_agg并导致 1 元素数组(并覆盖重复的“gid”键,当jsonb从我的自定义存储函数返回时):

甚至可以在这里订购还是我应该在我的 JAVA 应用程序中订购?