Re: Select subset of rows

Поиск
Список
Период
Сортировка
От Stephan Szabo
Тема Re: Select subset of rows
Дата
Msg-id Pine.BSF.4.10.10008272108570.48789-100000@megazone23.bigpanda.com
обсуждение исходный текст
Ответ на Re: Select subset of rows  (John McKown <jmckown@prodigy.net>)
Список pgsql-sql
On Sun, 27 Aug 2000, John McKown wrote:

> On Sun, 27 Aug 2000, Stephan Szabo wrote:
> 
> > 
> > Of course immediately after sending the last message and logging off my
> > ISP I figured out the simpler way for the third one:
> > 
> > begin;
> > select salary into temp saltemp from employee order by salary desc 
> >  limit 5;
> > select name from employee where exists (select * from saltemp where
> >  saltemp.salary=employee.salary);
> > end;
> > 
> > Stephan Szabo
> > sszabo@bigpanda.com
> > 
> 
> I wonder if the following might be a bit faster? Or would it be slower?
> 
> select salary into temp saltemp from employee order by salary desc
> limit 5;
> 
> select min(salary) as minsal into test minsal from saltemp;
> 
> select name, salary from employee, minsal
>  where salary >= minsal;
> 
> I don't know the speed difference between my second select and your
> subselect within an EXISTS clause might be.

Not sure.  Probably depends on if the subplan/seq scan for the 
subquery on the one is more or less expensive than the time on the
additional query and processing for the query with the min.

Actually, i guess you might be able to use offset in there to get rid
of the second query too...
if you do like
select salary into temp saltemp from employee order by salary desclimit 1 offset 4;
you can probably get the 5th one right out.



В списке pgsql-sql по дате отправления:

Предыдущее
От: John McKown
Дата:
Сообщение: Re: Select subset of rows
Следующее
От: "Lalit"
Дата:
Сообщение: Sql and paradox