Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: Sql Query
also how about this one:
select * from (select total,rownum row_num from (select distinct total from emp order by total desc)) where row_num=4;
Mark
David Fitzjarrell wrote:
> In our last gripping episode sigdock_at_my-deja.com wrote:
> > Try the following query:
> >
> > select id
> > , total
> > from orders
> > where rownum < 5
> > order by total desc
> > /
> >
> > Should work...
> >
> > h.t.h.
> >
> > BertJan Meinders
> > Oracle DBA
> > ASR-ICT
> >
> > In article <8vgltk$mq3$1_at_nnrp1.deja.com>,
> > Paul <elrik13269_at_my-deja.com> wrote:
> > > Hi,
> > > I,m new to sql and wonder if anybody could help me with the
following:
> > > If I had a table with say order id and order total i.e
> > >
> > > id total
> > > 213 567.35
> > > 345 444.00
> > > 214 32.99
> > > and so on how would I find say just the fourth highest total from
the
> > > table without displaying the rest of the table.
> > > Thanks for any help.
> > >
> > > Sent via Deja.com http://www.deja.com/
> > > Before you buy.
> > >
> >
> > Sent via Deja.com http://www.deja.com/
> > Before you buy.
> >
>
>
>> end;
> declare
> cursor get_ordered_data is
> select id, total
> from orders
> order by total desc;
> ctr number:=0;
> begin
> for order_rec in get_ordered_data loop
> ctr := ctr + 1;
> if ctr = 4 then
> dbms_output.put_line('Order ID: '||order_rec.id||'
> Total: '||order_rec.total);
> end if;
> end loop;
>
>> end;
> declare
> cursor get_orders is
> select id, total
> from orders
> order by total desc;
> ordid orders.id%type;
> ordttl orders.total%type;
> ctr number:=0;
> begin
> open get_orders;
> loop
> fetch get_orders into ordid, ordttl;
> ctr := ctr + 1;
> exit when ctr > 4; -- Total has been printed, exit
> if ctr = 4 then
> dbms_output.put_line('Order ID: '||ordid||'
> Total: '||ordttl);
> end if;
> end loop;
> close get_orders;
>
>
>