pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Edmund Bacon <ebacon@onesystem.com>
To: pgsql-sql@postgresql.org
Subject: Re: Group by and aggregates
Date: Thu, 04 Nov 2004 10:34:41 -0700
Message-ID: <418A6831.9060306@onesystem.com> (raw)
In-Reply-To: <20041104165430.GD94770@mich2.itxmarket.com>
References: <20041104165430.GD94770@mich2.itxmarket.com>

Michael L. Hostbaek wrote:
> List, 
> 
> I've got a table looking something like this:
> 
> my_table
> 	some_id int bla bla,
> 	partno varchar(100),
> 	status varchar(100),
> 	cmup numeric(14,2),
> 	qty int
> 
> My SQL select statement will then group together partno, status and
> aggregate sum(qty) and max(cmup). This is all good and nice.
> 
> My result will look something like this:
> 
> partno	status		cmup	qty
> test1	stock		10.00	15
> test1	incoming	15.00	71
> test2	incoming	12.00	10
> 
> Now, I need the first line to say "15.00" in the cmup field. That is,
> stock and incoming are obviously not being grouped, but since it's the
> same partno I'd like somehow to show the highest cmup. Is there some
> black SQL voodoo that'll achieve this ?
>

You *CAN* sort by aggregates
e.g.

select partno, status, sum(cmup) as cmup, sum(qty) as qty
    from my_table
    group by partno, status
    order by partno, sum(cmup) desc;

  partno |  status  | cmup | qty
--------+----------+------+-----
  test1  | incoming |   29 |  71
  test1  | stock    |   10 |  15
  test2  | incoming |   12 |  10


-- 
Edmund Bacon <ebacon@onesystem.com>



view thread (7+ messages)  latest in thread

Message-ID: <418A6831.9060306@onesystem.com>
Permalink:  ../418A6831.9060306@onesystem.com/
Also on:    postgresql.org/message-id/418A6831.9060306@onesystem.com

 · 

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: ebacon@onesystem.com
  Subject: Re: Group by and aggregates
  In-Reply-To: <418A6831.9060306@onesystem.com>

* 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