Re: An aggregate function on ARRAY - Mailing list pgsql-general

From Merlin Moncure
Subject Re: An aggregate function on ARRAY
Date
Msg-id AANLkTimOV8omUas+n6hK7ijRj5jZUm=FFhx62PvkaZ5w@mail.gmail.com
Whole thread Raw
In response to An aggregate function on ARRAY  (Rafal Pietrak <rafal@zorro.isa-geek.com>)
Responses Re: An aggregate function on ARRAY
List pgsql-general
On Wed, Aug 11, 2010 at 8:42 AM, Rafal Pietrak <rafal@zorro.isa-geek.com> wrote:
> Hi,
>
> I've started using ARRAY data type recently, and I fell into the
> following problem:
>
> When I have a relatively large ARRAY (like [1:500]) takeing an aggregate
> function on its elements is not so easy. One has to iterate all the
> elements, like this:
>
> SELECT min(A[1]) as a1, min(A[2]) as a2, ...
>
> This is because aggregate functions are not defined on ARRAY types. Or
> may be there is an easier and more readable way to do that?

If you have a fixed number of elements across the entire table, you
can accomplish what I think you are trying to do by expanding all the
arrays in the table and regrouping based on generate_series(), but
this is a horribly inefficient way to go.  Are you sure you aren't
looking at table design issue?

merlin

pgsql-general by date:

Previous
From: "Davor J."
Date:
Subject: How-to question: pre-parsing and pre-planning dynamic sql statements
Next
From: Merlin Moncure
Date:
Subject: Re: How-to question: pre-parsing and pre-planning dynamic sql statements