小编tbz*_*tbz的帖子

PostgreSQL:在group by子句中连接数组

我们有一个问题将数组分组到一个数组中.我们希望将两个列中的值连接到一个单独的数组中,并聚合这些多行的数组.

鉴于以下输入:

| id | name | col_1 | col_2 |
| 1  |  a   |   1   |   2   |
| 2  |  a   |   3   |   4   |
| 4  |  b   |   7   |   8   |
| 3  |  b   |   5   |   6   |
Run Code Online (Sandbox Code Playgroud)

我们想要以下输出:

| a | { 1, 2, 3, 4 } |
| b | { 5, 6, 7, 8 } |
Run Code Online (Sandbox Code Playgroud)

元素的顺序很重要,应该与聚合行的id相关联.

我们尝试了array_agg函数:

SELECT array_agg(ARRAY[col_1, col_2]) FROM mytable GROUP BY name;
Run Code Online (Sandbox Code Playgroud)

不幸的是,这句话引发了一个错误:

ERROR: …
Run Code Online (Sandbox Code Playgroud)

sql arrays postgresql group-by postgresql-9.1

6
推荐指数
1
解决办法
3668
查看次数

PostgreSQL - 从包含路径的表生成 JSON-tree-object

给定一个包含未知树结构路径/节点的表:

| id | path_id | node
| 1  | p1      | n1
| 2  | p1      | n2
| 3  | p1      | n3
| 4  | p2      | n1
| 5  | p2      | n2
| 6  | p2      | n4
Run Code Online (Sandbox Code Playgroud)

相应的树结构将是

    n1 
   /  
  n2
 /  \
n3   n4
Run Code Online (Sandbox Code Playgroud)

是否可以使用 SQL 和 PostgreSQL 函数为这棵树生成一个 JSON 对象?

postgresql tree json

5
推荐指数
1
解决办法
2537
查看次数

标签 统计

postgresql ×2

arrays ×1

group-by ×1

json ×1

postgresql-9.1 ×1

sql ×1

tree ×1