【问题标题】:Why array_agg() is returning empty array in postgresql?为什么 array_agg() 在 postgresql 中返回空数组?
【发布时间】:2017-01-11 05:26:30
【问题描述】:

我有一个名为 start 的整数类型列。我想通过该列的值创建一个数组。这似乎很简单,我使用了 array_agg(),但它给出了空数组作为输出。以下是我的专栏数据

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

以下是我用来制作数组的查询:

select array_agg(start) as start_array from table1;

为什么给出空数组?

【问题讨论】:

  • 这真的是您的全部查询吗?除此之外,您没有任何WHERE 或其他子句吗?
  • 这应该可以。你确定表中真的有数据吗?
  • @GordonLinoff 是的,该表有数据
  • @LukasEder 我没有任何 WHERE 子句
  • 它应该可以工作:sqlfiddle.com/#!15/26e97/1/1你是如何检查结果的?

标签: postgresql array-agg


【解决方案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;

【讨论】:

    猜你喜欢
    • 2021-11-26
    • 2021-08-05
    • 2018-12-19
    • 2021-09-15
    • 1970-01-01
    • 2016-03-12
    • 2012-08-26
    • 1970-01-01
    相关资源
    最近更新 更多