From: | Erik Jones <erik(at)myemma(dot)com> |
---|---|
To: | Owen Hartnett <owen(at)clipboardinc(dot)com> |
Cc: | <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Generating subtotal reports direct from SQL |
Date: | 2007-10-09 22:37:10 |
Message-ID: | F4A37828-A0C3-419C-AF16-BE4FDCD93DD8@myemma.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Oct 9, 2007, at 4:53 PM, Owen Hartnett wrote:
>
> I'm hoping there's a real easy way of doing this that I'm just
> missing:
>
> Given a Select statement such as:
>
> Select ID, code, amount from foo where code < 10;
>
> that gives me a table like this:
>
> ID code amount
> _____________________________________
> 1 4 20
> 2 3 10
> 3 4 15
> 4 2 10
> 5 3 9
> 6 3 8
>
> I want to generate a report table like the following (group by code):
>
> ID code amount
> _____________________________________
> 4 2 10
> 2 10
> 2 3 10
> 5 3 9
> 6 3 8
> 3 27
> 1 4 20
> 3 4 15
> 4 35
> 72
>
> Such that the final table has additional subtotal rows with the
> aggregate sum of the amounts. I'm thinking I can generate two
> tables and merge them, but is there an easier way using a fancy
> Select statement?
Try generating them and merging them in one queryt:
SELECT ID, code, amount
FROM (SELECT ID, code, amount
FROM table_name
UNION
SELECT null, code, sum(amount)
FROM table_name
GROUP BY code) t
ORDER BY code, test1_id
Note that I didn't test that
Erik Jones
Software Developer | Emma®
erik(at)myemma(dot)com
800.595.4401 or 615.292.5888
615.292.0777 (fax)
Emma helps organizations everywhere communicate & market in style.
Visit us online at http://www.myemma.com
From | Date | Subject | |
---|---|---|---|
Next Message | Dmitry Koterov | 2007-10-09 23:01:58 | How to speedup intarray aggregate function? |
Previous Message | Owen Hartnett | 2007-10-09 21:53:03 | Generating subtotal reports direct from SQL |