Re: How to find avg() of sum()?

From: Thomas Kellerer <spam_eater(at)gmx(dot)net>
To: pgsql-general(at)postgresql(dot)org
Subject: Re: How to find avg() of sum()?
Date: 2010-04-16 21:18:38
Message-ID: hqak7e$2vt$1@dough.gmane.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

semi-ambivalent wrote on 16.04.2010 19:57:
> I have some data fields that I have summed, grouped by a date field.
> The sums are different. How can I then calculate the average value for
> those sums? Everything I've tried errors out with something along the
> lines of using agregates where I can't, or for using multiple values
> where that is not allowed. I'm sure this can be done in one query,
> without temp tables, but I don't know it and haven't found it yet in
> the docs.

Assuming your sum() statement looks like:

SELECT one_field, sum(other_field)
FROM the_table
GROUP BY one_field;

You can get the average of the sums using:

SELECT avg(the_sum)
FROM (
SELECT one_field, sum(other_field) as the_sum
FROM the_table
GROUP BY one_field
) t

Thomas

In response to

Browse pgsql-general by date

  From Date Subject
Next Message John R Pierce 2010-04-17 08:02:52 Re: Int64GetDatum
Previous Message Tom Lane 2010-04-16 19:59:39 Re: Int64GetDatum