Имате нужда или от клауза GROUP BY, или от по-сложна заявка.
SELECT field1, MAX(updated_date)
FROM mytable
GROUP BY field1
За примерните данни това ще върне 3 реда.
По-вероятно е да искате:
SELECT t1.field1, t3.max_date
FROM mytable AS t1
JOIN (SELECT MAX(t2.updated_date) AS max_date
FROM mytable AS t2
) AS t3
ON t1.updated_date = t3.max_date;
За примерните данни това ще върне 1 ред:
ta3 2012-03-11 11:05:56
От основните СУБД само MySQL ви позволява да пропуснете клаузата GROUP BY, когато имате смесица от агрегатни и неагрегирани колони в списъка за избор. Стандартът SQL изисква клаузата GROUP BY и трябва да изброите всички неагрегирани колони в нея. Понякога в MySQL пропускането на клаузата GROUP BY дава отговора, който искате; но толкова често, колкото и не, успява да даде неочакван отговор.