* Ana Holzbach 
>  Thanks for your reply. Here's the next step: I've 
> added a date column to my table as follows:
> 
> +----+-------+------+------------+
> | id | value | type | date       |
> +----+-------+------+------------+
> |  1 |     6 | a    | 2002-09-08 |
> |  2 |     2 | b    | 2003-10-01 |
> |  3 |     5 | b    | 2001-02-18 |
> |  4 |     4 | a    | 1999-11-30 |
> |  5 |     1 | c    | 2000-03-12 |
> |  6 |    10 | d    | 1998-07-11 |
> |  7 |     7 | c    | 2002-09-15 |
> |  8 |     3 | d    | 2003-05-28 |
> +----+-------+------+------------+
> 
>  Now I'd like to get the min value for the type, and 
> the date where the min value occurred. So I tried the 
> following:
> 
> select min(value), type, date from A group by type;
> 
> +------------+------+------------+
> | min(value) | type | date       |
> +------------+------+------------+
> |          4 | a    | 2002-09-08 |
> |          2 | b    | 2003-10-01 |
> |          1 | c    | 2000-03-12 |
> |          3 | d    | 1998-07-11 |
> +------------+------+------------+
> 
>  You can see that the min value is correct, but the 
> date is just the first date found for the type on the 
> table, which is not the intended result.
> 
>  Similarly for the max -- correct max values, first 
> date found on the table for each type.
> 
>  Any suggestions ?

See the MAX-CONCAT trick:

<URL: http://www.mysql.com/doc/en/example-Maximum-column-group-row.html >

It works with MIN() too, of course:

select min(concat(lpad(value,6,'0'),'-',date)), type 
  from A 
  group by type


-- 
Roger

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

Reply via email to