Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.misc -> Re: Limitting result without ROWNUM
Charles Hooper schreef:
> Gerard H. Pille wrote:
> > Matthias Matker wrote:
> > > Hello together,
> > >
> > > I have to limit the number of results without using ROWNUM or something
> > > like that. One hint was to use "JOIN".
> > >
> > > I have to select the 10 biggest persons from a table "persons"
> > >
> > > id, firstname, lastname, size, age
> > >
> > >
> > > WITHOUT using ROWNUM or "limitter" like this.
> > >
> > > Do you have any idea?
> > >
> > > Thanks a lot.
> > >
> >
> > select * from persons
> > where size >= (
> > select max(size) from persons c1
> > where 10 > (select count(*) from persons c2 where c2.size > c1.size)
> > )
> >
> > I'm trying to select those persons whose height is greater or equal to the height of a person
> > that does not have 10 persons that are bigger.
> >
> > This may result in more than 10 rows, if the tenth rank has some persons of equal height.
>
OMG, my bad!
select * from T1
where height >= (
select MIN(height) from T1 c1
where 10 > (select count(*) from T1 c2 where c2.height >
c1.height)
);
I'm trying to select those persons whose height is greater or equal to the height of THE SMALLEST person that does not have 10 persons that are bigger. Received on Mon Jan 22 2007 - 02:49:49 CST