Re: Optimizing sum() operations - Mailing list pgsql-novice

From Sean Davis
Subject Re: Optimizing sum() operations
Date
Msg-id 264855a00810031223n68fea879q622443eefb950770@mail.gmail.com
Whole thread Raw
In response to Re: Optimizing sum() operations  ("Dobes Vandermeer" <dobesv@gmail.com>)
Responses Re: Optimizing sum() operations  ("Dobes Vandermeer" <dobesv@gmail.com>)
List pgsql-novice
On Fri, Oct 3, 2008 at 3:13 PM, Dobes Vandermeer <dobesv@gmail.com> wrote:
> On Fri, Oct 3, 2008 at 4:51 AM, Sean Davis <sdavis2@mail.nih.gov> wrote:
>> On Fri, Oct 3, 2008 at 4:51 AM, Dobes Vandermeer <dobesv@gmail.com> wrote:
>>> I'm currently using sum() to compute historical values in reports;
>>> basically select sum(amount) on records where date <= '...' and date
>>>>= '...' who = X.
>>>
>>> Second, if this is a concern, is there a best practice for optimizing
>>> these kinds of queries?
>>
>> You'll need to test to see what performance you get.  That said,
>> indexing is a good place to start.  You can always run explain and
>> explain analyze on the queries to double-check the planner.
>
> Could I create an index that includes a sum() function - like:
>
> create index sumidx on records (who, date, sum(amount)) ?
>
> I'm sure that theoretically this is possible, but does postgres support it?

I'm not sure what you want to do.  Trying to make an index on a sum()
doesn't make any sense because the sum() depends on the rows used in a
query; i.e., sum() is an aggregate and cannot be used in an index.
You CAN index functions that operate on a single row.

What is wrong with an index on who and date and then doing the sum?

Sean

pgsql-novice by date:

Previous
From: "Dobes Vandermeer"
Date:
Subject: Re: Optimizing sum() operations
Next
From: "Dobes Vandermeer"
Date:
Subject: Re: Optimizing sum() operations