134得票8回答
如何将JSON数组转换为Postgres数组?

我有一个名为data的列,类型为json,保存着像这样的JSON文档: { "name": "foo", "tags": ["foo", "bar"] } 我想将嵌套的 "tags" 数组转换为一个连接的字符串('foo, bar')。理论上,可以使用 array_to_...

50得票2回答
将多对多连接的右侧转换为数组。

在使用多对多关系的连接时,结果会分成多行。我想要做的是将连接的右侧转换为一个数组,这样结果就只有一行。 以三个表为例: CREATE TABLE items ( id serial primary key, title text ); CREATE TABLE tags (...

34得票1回答
PostgreSQL JSON查询数组与多个值的匹配

我想在Postgres中针对jsonb类型编写一个查询,根据客户ID的数组找到相应的组。 给定这个示例表: CREATE TABLE grp(d JSONB NOT NULL); INSERT INTO grp VALUES ('{"name":"First","arr":["fo...

32得票3回答
数组成员上的外键约束?

假设我有一个包含职位角色的表格: CREATE TABLE roles ( "role" character varying(80) NOT NULL, CONSTRAINT "role" PRIMARY KEY (role) ); 假设我还有一个表格,名为users,每一行(即...

29得票1回答
为什么PostgreSQL允许查询array [0],即使它使用基于1的数组?

我一直在我的一个PostgreSQL数据库中使用数组进行操作。 我创建了一个包含至少一个元素的几何数组的表: CREATE TABLE test_arrays ( polygons geometry(Polygon,4326)[], CONSTRAINT non_empty_...

26得票4回答
如何在PostgreSQL中获取一个唯一的数组?

以下内容 SELECT ARRAY[a,b,c,d] FROM ( VALUES ('foo', 'bar', 'foo', 'baz' ) ) AS t(a,b,c,d); 返回类型为text[]的{foo,bar,foo,baz}。我想要得到类型为text[]的{foo,bar,...

25得票1回答
如何保留非嵌套数组中元素的原始顺序?

给定字符串: 'I think that PostgreSQL is nifty' 我想对该字符串中的每个单词进行操作。基本上,我有一个可以获取单词详细信息的字典,并希望将该字符串的展开数组与该字典连接起来。 到目前为止,我已经完成了以下工作: select word, meaning...

25得票2回答
如何从PostgreSQL的jsonb数组中获取特定对象?

我有一个名为'user'的字段,它保存了一个大致如下的JSON数组: [{ "_id" : "1", "count" : "4" }, { "_id" : "3", "count": "4"}] 现在我想要一个像这样的查询: select count from tablename wh...

19得票2回答
为什么array_agg()比非聚合的ARRAY()构造函数慢?

我刚刚在回顾一些为pre-8.4 PostgreSQL编写的旧代码时,发现了一些很棒的东西。我记得以前有一个自定义函数来完成其中的一部分,但是我忘记了pre-array_agg()是什么样子的。为了复习,现代聚合写成这样。 SELECT array_agg(x ORDER BY x DESC...