> -----Original Message----- > I need to select a max value for a group of records and I > also need the > primary key for that record. > > I am wondering if this can be done with a single query? e.g > > Table_x > > id count cat_id > 1 10 1 > 2 20 2 > 3 35 2 > 4 15 1 > > with > SELECT id, cat_id, max(count) > FROM table_x > GROUP BY cat_id > > I would probably get the following result > > id cat_id max(count) > 1 1 15 > 2 2 35 > and what I would like to get is > > id cat_id max(count) > 4 1 15 > 3 2 35 > > Is there a way to do this with single query ?
This is an old old topic and one that causes more grief than it's worth and I wish mySQL would just "fix" this bug (IMHO it *is* a bug) so it works as people EXPECT it to work... Search the archives for these topics: "Erroneus column using MAX() and GROUP BY" and "Help with subqueries... MAX() and GROUP BY" Also these links may help. http://dev.mysql.com/doc/refman/4.1/en/example-maximum-column-group-row.html http://www.xaprb.com/blog/2006/12/07/how-to-select-the-firstleastmax-row-per -group-in-sql/ The short answer is "no", or you have to use sub-selects, which in effect is not one select and equally slow and painful. -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]