Итак, у меня есть эта таблица:
create table test (
id integer,
rank integer,
image varchar(30)
);
Тогда некоторые значения:
id | rank | image
---+------+-------
1 | 2 | bbb
1 | 3 | ccc
1 | 1 | aaa
2 | 3 | c
2 | 1 | a
2 | 2 | b
Я хочу сгруппировать их по идентификатору и объединить имя изображения в порядке, указанном в ранге. В MySQL я могу сделать это:
select id,
group_concat( image order by rank asc separator ',' )
from test
group by id;
И результат будет:
1 aaa,bbb,ccc
2 a,b,c
Есть ли способ, которым я могу иметь это в postgresql?
Если я попытаюсь использовать array_agg () , имена не будут отображаться в правильном порядке, и, очевидно, я не смог найти способ их сортировки. (Я использовал postgres 8.4)