Re: Group by and aggregates
От | Oliver Elphick |
---|---|
Тема | Re: Group by and aggregates |
Дата | |
Msg-id | 1099590407.5445.24.camel@braydb обсуждение исходный текст |
Ответ на | Group by and aggregates ("Michael L. Hostbaek" <mich@the-lab.org>) |
Список | pgsql-sql |
On Thu, 2004-11-04 at 16:54, Michael L. Hostbaek wrote: ... > some_id partno status cmup qty > 1 test1 stock 10.00 15 > 2 test2 incoming 12.00 10 > 3 test1 incoming 15.00 60 > 4 test1 incoming 14.00 11 ... > 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 ? junk=# select partno, status, (select max(cmup) from my_table as b where b.partno = a.partno) as cmup, sum(qty) from my_table as a group by partno, status, (select max(cmup) from my_table as b where b.partno = a.partno); partno | status | cmup | sum --------+----------+-------+-----test1 | incoming | 15.00 | 71test1 | stock | 15.00 | 15test2 | incoming | 12.00| 10 (3 rows) Oliver Elphick
В списке pgsql-sql по дате отправления: