Hi,

(mysql server 5.0.15 running under linux)

I suppose this is a classic task. I just hope MySQL 5.0 is able to give
the right result.

I would like to select top three from different parts in the same table,
e.g. for the following data set:

id,value
1,10
1,20
1,30
1,40
1,50
2,10
2,20
2,30
2,40
3,10
3,20
4,10

.. I would like the output to be:

id,value
1,50
1,40
1,30
2,40
2,30
2,20
3,20
3,10
4,10

That is, the top 3 from each id. The id could be a key in another table
instead (just containing 1,2,3,4 as rows). The numbers of different ids
might vary thus a static set of UNIONs is no answer.

I tried using a subquery using LIMIT inside, but I just got the
following result:
ERROR 1235 (42000): This version of MySQL doesn't yet support 'LIMIT & 
IN/ALL/ANY/SOME subquery'
It seems like this was a possibility in very early versions of MySQL 4.1.

I tried with GROUP_CONCAT() as well, but even though there is an ORDER
option, there is no LIMIT option here (feature request? :-) )

Maybe using a variable to keep track of internal count...

-- 
- Peter Brodersen


--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to