2017-01-09 146 views
0

我有一个整数类型列名为开始。我想通过这个列的值来创建一个数组。这似乎很容易,我使用array_agg(),但它是给出空数组作为输出。以下是我的列数据为什么array_agg()在postgresql中返回空数组?

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

而下面是用我的查询,使阵列:

select array_agg(start) as start_array from table1; 

为什么给空数组?

+0

那真的是你的整个查询?除此之外,您还没有任何“WHERE”或其他条款? –

+4

这应该起作用。你确定桌子里真的有数据吗? –

+0

@GordonLinoff是的表有数据 – LSG

回答

1

这不是

没有办法,这可以返回空,除非没有行。也许JOIN或WHERE子句是错误的,你有0行?

而且仿佛你的查询是这种简单的微型优化,

select array_agg(start) as start_array from table1; 

然后,它probably better written with the ARRAY() constructor ...

SELECT ARRAY(SELECT start FROM table1) AS start_array; 
相关问题