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

From Rafal Pietrak
Subject Re: An aggregate function on ARRAY
Date
Msg-id 1281617247.4673.15.camel@localhost.localdomain
Whole thread Raw
In response to Re: An aggregate function on ARRAY  (Merlin Moncure <mmoncure@gmail.com>)
List pgsql-general
On Wed, 2010-08-11 at 09:53 -0400, Merlin Moncure wrote:
> On Wed, Aug 11, 2010 at 8:42 AM, Rafal Pietrak <rafal@zorro.isa-geek.com> wrote:
[....]
> >
> > 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

I don't. Although I may try to constriant the problem to that if I
assume maximum size of the array.

> 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?

I actually did a sort of this, by having an intermediate table which
decomposes the array into separate table and have the aggregate
computted then. But his is hirrible, unreadable and not usefull only in
case of single dimention array.

I'm gathering measurement data, which most suitable go into an array.
The data is time related and array is used to bin it up.... into a
variable number of bins - array of variable size.

Any hints on how can I arrange that sort of data (preferably into an
array) and subsequently be able to compute statistics functions on all
those bins at the same time?

-R


pgsql-general by date:

Previous
From: Ivan Sergio Borgonovo
Date:
Subject: Re: delete query taking way too long
Next
From: Tom Lane
Date:
Subject: Re: InitDB: Bad system call