pg.ddx.io pgsql-sql@postgresql.org mailing list archive
help / color / mirror / Atom feedselect best price
3+ messages / 2 participants
[nested] [flat]
* select best price
@ 2005-10-26 15:21 Gary Stainburn <gary.stainburn@ringways.co.uk>
0 siblings, 1 reply; 3+ messages in thread
From: Gary Stainburn @ 2005-10-26 15:21 UTC (permalink / raw)
To: pgsql-sql
Hi folks
I've got a table holding item code(cs_id), supplier a/c (co_id) , and
price (cs_price).
How can I select the rows containing the lowest price for each item
code?
I've tried various forms of min() etc and know it must be simple but I'm
stumped.
Gary
--
Gary Stainburn
This email does not contain private or confidential material as it
may be snooped on by interested government parties for unknown
and undisclosed purposes - Regulation of Investigatory Powers Act, 2000
^ permalink raw reply [nested|flat] 3+ messages in thread
* Re: select best price
@ 2005-10-26 15:38 Gary Stainburn <gary.stainburn@ringways.co.uk>
parent: Gary Stainburn <gary.stainburn@ringways.co.uk>
0 siblings, 1 reply; 3+ messages in thread
From: Gary Stainburn @ 2005-10-26 15:38 UTC (permalink / raw)
To: pgsql-sql
On Wednesday 26 October 2005 4:21 pm, Gary Stainburn wrote:
> Hi folks
>
> I've got a table holding item code(cs_id), supplier a/c (co_id) , and
> price (cs_price).
>
> How can I select the rows containing the lowest price for each item
> code?
>
> I've tried various forms of min() etc and know it must be simple but
> I'm stumped.
>
> Gary
I've come up with the select below. Is there a better/more efficient
way of doing this?
select cp.cs_id, from cons_price_details cp,
(select cs_id, min(cs_price) as cs_price
from cons_price_details
group by cs_id
) v
where cp.cs_id = v.cs_id and cp.cs_price = v.cs_price;
--
Gary Stainburn
This email does not contain private or confidential material as it
may be snooped on by interested government parties for unknown
and undisclosed purposes - Regulation of Investigatory Powers Act, 2000
^ permalink raw reply [nested|flat] 3+ messages in thread
* Re: select best price
@ 2005-10-26 18:40 Bruno Wolff III <bruno@wolff.to>
parent: Gary Stainburn <gary.stainburn@ringways.co.uk>
0 siblings, 0 replies; 3+ messages in thread
From: Bruno Wolff III @ 2005-10-26 18:40 UTC (permalink / raw)
To: Gary Stainburn <gary.stainburn@ringways.co.uk>; +Cc: pgsql-sql
On Wed, Oct 26, 2005 at 16:38:48 +0100,
Gary Stainburn <gary.stainburn@ringways.co.uk> wrote:
> On Wednesday 26 October 2005 4:21 pm, Gary Stainburn wrote:
> > Hi folks
> >
> > I've got a table holding item code(cs_id), supplier a/c (co_id) , and
> > price (cs_price).
> >
> > How can I select the rows containing the lowest price for each item
> > code?
> >
> > I've tried various forms of min() etc and know it must be simple but
> > I'm stumped.
> >
> > Gary
>
> I've come up with the select below. Is there a better/more efficient
> way of doing this?
>
> select cp.cs_id, from cons_price_details cp,
> (select cs_id, min(cs_price) as cs_price
> from cons_price_details
> group by cs_id
> ) v
> where cp.cs_id = v.cs_id and cp.cs_price = v.cs_price;
If you only need one lowest price entry where there are ties, you could also
use DISTINCT ON (a nonstandard Postgres extension) and ORDER BY that may
execute faster.
^ permalink raw reply [nested|flat] 3+ messages in thread
end of thread, other threads:[~2005-10-26 18:40 UTC | newest]
Thread overview: 3+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2005-10-26 15:21 select best price Gary Stainburn <gary.stainburn@ringways.co.uk>
2005-10-26 15:38 ` Gary Stainburn <gary.stainburn@ringways.co.uk>
2005-10-26 18:40 ` Bruno Wolff III <bruno@wolff.to>
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