pg.ddx.io pgsql-sql@postgresql.org mailing list archivehelp / color / mirror / Atom feed
From: Bruno Wolff III <bruno@wolff.to>
To: PFC <lists@boutiquenumerique.com>
Cc: Kenneth Gonsalves <lawgon@thenilgiris.com>
Cc: Ramakrishnan Muralidharan <ramakrishnanm@pervasive-postgres.com>
Cc: pgsql-sql@postgresql.org
Subject: Re: two sums in one query
Date: Fri, 8 Jul 2005 09:07:25 -0500
Message-ID: <20050708140725.GA22725@wolff.to> (raw)
In-Reply-To: <op.stlkoiq4th1vuj@localhost>
References: <02767D4600E59A4487233B23AEF5C5992A4093@blrmail1.aus.pervasive.com>
<200507081306.08597.lawgon@thenilgiris.com>
<op.stlkoiq4th1vuj@localhost>
On Fri, Jul 08, 2005 at 15:49:20 +0200,
PFC <lists@boutiquenumerique.com> wrote:
>
>
> >> SELECT SUM( CASE WHEN COALESCE( DEBIT , 0 ) <> 0 THEN
> >>COALESCE( AMOUNT , 0 ) ELSE 0 END ) AS DEBIT_AMT , SUM( CASE WHEN
> >>COALESCE( CREDIT , 0 ) <> 0 THEN COALESCE( AMOUNT , 0 ) ELSE 0
> >>END ) AS CREDIT_AMT FROM <TABLE NAME>
>
> I don't know if it will use indexes (bitmapped OR indexes in 8.1
> ?)... if you have indexes on debit and on credit, you could do
>
> SELECT (SELECT sum(amount) FROM table WHERE debit=X) AS debit, (SELECT
> sum(amount) FROM table WHERE credit=x) AS credit;
If most of the records are credits or debits you don't want to do this.
A single sequential scan through the table will be the best plan.
view thread (7+ messages) latest in thread
Message-ID: <20050708140725.GA22725@wolff.to> Permalink: ../20050708140725.GA22725@wolff.to/ Also on: postgresql.org/message-id/20050708140725.GA22725@wolff.to ·
reply
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Reply to all the recipients using the --to and --cc options: reply via email To: pgsql-sql@postgresql.org Cc: bruno@wolff.to, lists@boutiquenumerique.com, lawgon@thenilgiris.com, ramakrishnanm@pervasive-postgres.com Subject: Re: two sums in one query In-Reply-To: <20050708140725.GA22725@wolff.to> * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions for how to clone and mirror all data and code used for this inbox