Почему 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;