You can do it as long as there is only a single record with the max value. If there is more than 1 record with the same max value, there isn't a single record to pull.

To do it, you would need to join on the results of the max query, and part of the join condition would be the max value

SELECT id, count, cat_id FROM table_x JOIN
( SELECT cat_id, max(count) maxcount
  FROM table_x
  GROUP BY cat_id ) AS table_max
ON table_x.cat_id=table_max.cat_id AND table_x.count=table_max.maxcount

I'm not sure if I got the syntax perfect, but that the concept of how you would do it.


On Sep 7, 2007, at 3:11 PM, Cathy Fusko wrote:

Hi,
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 ?

cathy
www.nachofoto.com


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

Reply via email to