Как сделать массив из SELECT, возвращающий более одной строки - PullRequest
2 голосов
/ 27 марта 2012

Можно ли сделать один большой массив из запроса, например:

select
array_append(ARRAY[0], console_id)
from archive_sessions
where tournament_id = 14817

Я пытался с group by, но я должен использовать console_id в нем, и он по-прежнему более 1 строки.

А как в этом запросе инициализировать пустой ARRAY[]?

Ответы [ 2 ]

3 голосов
/ 27 марта 2012

Если запрос возвращает только столбцы, которые входят в массив, используйте конструктор ARRAY :

SELECT ARRAY(SELECT console_id FROM archive_sessions
             WHERE  tournament_id = 14817) AS console_arr;

Обычно это быстрее , чем array_agg() для простого случая.

3 голосов
/ 27 марта 2012

Вы хотите array_agg

select array_agg(console_id) as consoles from archive_sessions where tournament_id = 14817
...