Skip to content

Instantly share code, notes, and snippets.

@ryandotsmith
Created January 23, 2013 05:19
Show Gist options
  • Save ryandotsmith/4602274 to your computer and use it in GitHub Desktop.
Save ryandotsmith/4602274 to your computer and use it in GitHub Desktop.
Postgres array concatenation aggregate function.
CREATE AGGREGATE array_accum (anyarray)
(
sfunc = array_cat,
stype = anyarray,
initcond = '{}'
);
@Medosopher
Copy link

Great Job. Thanks.

@jbdesbas
Copy link

jbdesbas commented Feb 1, 2021

Simple and useful ! Thanks !

@bf
Copy link

bf commented Jul 13, 2022

had to change it for pg 14:

CREATE AGGREGATE array_accum (anycompatiblearray)
(
    sfunc = array_cat,
    stype = anycompatiblearray,
    initcond = '{}'
);  

@WhereRtheInterwebs
Copy link

WhereRtheInterwebs commented Apr 22, 2023

This is great! Is it possible to adapt this so that you can make the array items distinct?
Example of what I'm thinking:
array_accum(distinct "duplicateList")

@megagreg72
Copy link

megagreg72 commented Aug 1, 2024

had to change it for pg 14:

CREATE AGGREGATE array_accum (anycompatiblearray)
(
    sfunc = array_cat,
    stype = anycompatiblearray,
    initcond = '{}'
);  

Thanks, this version worked for me!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment