相关疑难解决方法(0)

选择 json_agg 中的列

我有一个查询,如:

SELECT a.id, a.name, json_agg(b.*) as "item"
  FROM a
  JOIN b ON b.item_id = a.id
 GROUP BY a.id, a.name;
Run Code Online (Sandbox Code Playgroud)

如何选择在列b,所以我没有b.item_id在JSON对象?

我读过关于ROW,但它返回一个 JSON 对象,如:

{"f1": "Foo", "f2": "Bar"}
Run Code Online (Sandbox Code Playgroud)

一旦获取它以匹配正确的列键,我将需要重新映射 JSON 对象。我想避免这种情况并保留原始列名。

postgresql group-by row json

41
推荐指数
4
解决办法
10万
查看次数

Postgres 多列到 json

我正在运行 postgresql 9.3.4。我有一个包含 3 个字段的表:

id   name  addr
---  ----  ----
1    n1    ad1
2    n2    ad2
...
Run Code Online (Sandbox Code Playgroud)

我需要将数据移动到包含以下字段的新表:

id   data
---  ----
1    {'name': 'n1', 'addr': 'ad1'}
2    {'name': 'n2', 'addr': 'ad2'}
...
Run Code Online (Sandbox Code Playgroud)

row_to_json对我来说不是解决方案,因为它也SELECT t.id, row_to_json(t) as data FROM (select id, name, addr from myt) t增加id了结果。有没有办法在我的数据字段中选择我需要的字段(名称和地址)?

postgresql row json

33
推荐指数
2
解决办法
5万
查看次数

如何在 Postgres 中获取窗口函数的聚合?

我有一个表,其中包含两列整型数组的排列/组合,第三列包含一个值,如下所示:

CREATE TABLE foo
(
  perm integer[] NOT NULL,
  combo integer[] NOT NULL,
  value numeric NOT NULL DEFAULT 0
);
INSERT INTO foo
VALUES
( '{3,1,2}', '{1,2,3}', '1.1400' ),
( '{3,1,2}', '{1,2,3}', '0' ),
( '{3,1,2}', '{1,2,3}', '1.2680' ),
( '{3,1,2}', '{1,2,3}', '0' ),
( '{3,1,2}', '{1,2,3}', '1.2680' ),
( '{3,1,2}', '{1,2,3}', '0' ),
( '{3,1,2}', '{1,2,3}', '0' ),
( '{3,1,2}', '{1,2,3}', '1.2680' ),
( '{3,1,2}', '{1,2,3}', '0.9280' ),
( '{3,1,2}', '{1,2,3}', '0' ),
( '{3,1,2}', '{1,2,3}', '1.2680' ),
( …
Run Code Online (Sandbox Code Playgroud)

postgresql aggregate window-functions

11
推荐指数
1
解决办法
1万
查看次数

需要单独的列来计算百分比

我有下表:

NAME
Alex
Bob 
Bob
Tim
Alex
Roger
Run Code Online (Sandbox Code Playgroud)

我需要生产以下内容:

 Name    Count Percentage
 Alex    2     33%
 Bob     2     33%
 Roger   1     16.6%
 Tim     1     16.6%
Run Code Online (Sandbox Code Playgroud)

我不知道从哪里开始。我可以对计数进行初始查询,这很简单。

postgresql count sum

3
推荐指数
1
解决办法
3万
查看次数

标签 统计

postgresql ×4

json ×2

row ×2

aggregate ×1

count ×1

group-by ×1

sum ×1

window-functions ×1