簡體   English   中英

PostgreSQL array_agg(INTEGER [])

[英]PostgreSQL array_agg(INTEGER[])

使用Postgres 9.5,我想從GROUP BY中繼承整數數組。 從文檔看來似乎array_agg應該能夠做到這一點,但我得到: ERROR: cannot accumulate arrays of different dimensionality

在我的測試集上使用array_dims,得到[1:18],[1:24]和[1:48]。 我將其視為3個不同長度的1維陣列。 結果應該是一個具有維度的單個數組[1:90]我在這里缺少什么?

繼續評論中的討論,我個人的建議是創建匯總。

CREATE AGGREGATE array_concat_agg(anyarray) (
  SFUNC = array_cat,
  STYPE = anyarray
);

然后你可以這樣做:

SELECT column1
  FROM (VALUES (array[1,2,3]), (array[3,4]), (array[53,43,33,22])) arr;
    column1
---------------
 {1,2,3}
 {3,4}
 {53,43,33,22}
(3 rows)

SELECT array_concat_agg(column1)
  FROM (VALUES (array[1,2,3]), (array[3,4]), (array[53,43,33,22])) arr;
    array_concat_agg
-------------------------
 {1,2,3,3,4,53,43,33,22}
(1 row)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM