Този проблем е доста често срещан. Нуждаете се от подзаявка, за да изхвърлите максималния timestamp и ratetypeid (който е основата за групиране) и след това да изберете всичко останало от вътрешно присъединяване на тези редове на подзаявка и всичко останало.
За MySQL:
SELECT ratecode, rate, id, ratetypeid, date, entrytimestamp
FROM ratedefinitions,
(SELECT ratetypeid, MAX(entrytimestamp) AS max_timestamp FROM Rates
GROUP BY ratetypeid) AS inner_table
WHERE
inner_table.ratetypeid = ratetypeid
AND innertable.max_timestamp = timestamp