Because that wouldn't give the correct results.
I want the top 5 rows for EACH id.

A short example would be,

mytable:
Id    Val    Hits
1     a       10
1     b       15
1     c       17
2     q       200
2     r       205
2     s       101
2     t       50
3     zz      10
3     yy      20
3     xx      30
3     ww      40
3     uu      50

select max(2,hits) from mytable

Id
1     b       15
1     c       17
2     q       200
2     r       205
3     ww      40
3     uu      50

This is the top two rows for EACH id...

without this functionality i have to do

select distinct cid from mytable;
foreach(cid) {
    select * from mytable where cid='$cid' order by hits desc limit 2;
}

Which means the table is reread over and over. With this extra function we
could reduce the reads to at best once.

Richard

----- Original Message -----
From: "Christopher Thompson" <[EMAIL PROTECTED]>
To: "Richard Clarke" <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
Sent: Monday, March 04, 2002 5:56 PM
Subject: Re: extra max() function possibly very useful?


> On Monday 04 March 2002 10:50 am, Richard Clarke wrote:
> >
> > create table mytable (id int, val char(255), hits int);
> > insert some data...
> >
> > select max(5,hits) from mytable group by id;
> >
> > This would allow selecting of the top 5 rows for each id according to
the
> > hit column.
> >
> > Without this function it means the code must be written manually as,
> > foreach(id) {
> >     select * from mytable where id='$id' order by hits desc limit 5
> > }
>
> Why would you do your select like that instead of:
> select * from mytable order by hits desc limit 5
> ?
>
> And for the spam filter:  mysql, microsoft sucks, nusphere lawsuit.  :)


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to