小编use*_*575的帖子

如何使array_agg()像mySQL中的group_concat()一样工作

所以我有这张桌子:

create table test (
   id integer, 
   rank integer,
   image varchar(30)
); 
Run Code Online (Sandbox Code Playgroud)

然后一些值:

id | rank | image   
---+------+-------  
 1 |    2 | bbb  
 1 |    3 | ccc  
 1 |    1 | aaa  
 2 |    3 | c  
 2 |    1 | a  
 2 |    2 | b  
Run Code Online (Sandbox Code Playgroud)

我想按id对它们进行分组,并按照rank排序顺序连接图像名称.在mySQL中,我可以这样做:

  select id, 
         group_concat( image order by rank asc separator ',' ) 
    from test 
group by id;
Run Code Online (Sandbox Code Playgroud)

输出将是:

__PRE__
有没有办法在postgresql中有这个?

如果我尝试使用array_agg(),名称将不会以正确的顺序显示,显然我无法找到对它们进行排序的方法.(我使用的是postgres 8.4)

postgresql array-agg

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

标签 统计

array-agg ×1

postgresql ×1