Почему array_agg() возвращает пустой массив в postgresql?

У меня есть столбец целочисленного типа с именем как начало. Я хочу сделать массив по значениям этого столбца. Казалось, что это очень легко, и я использовал array_agg(), но в качестве вывода он выдает пустой массив. Ниже приведены мои данные столбца

start
 1
 2
 11
 5
 .
 .
 . (and so on)

И следующий мой запрос используется для создания массива:

select array_agg(start) as start_array from table1;

Почему это дает пустой массив?

1 ответ

Это не

Нет никакого способа, которым это может возвратить пустое, если нет никаких строк. Возможно, предложение JOIN или WHERE неверно и у вас 0 строк?

Также как микрооптимизация, если ваш запрос такой простой,

select array_agg(start) as start_array from table1;

Тогда, вероятно, лучше написать с ARRAY() конструктор...

SELECT ARRAY(SELECT start FROM table1) AS start_array;
Другие вопросы по тегам