Detta problem är ganska vanligt. Du behöver en underfråga för att kasta ut maxtidsstämpeln och ratetypeid (som är grunden för gruppering) och sedan välja allt annat från en inre sammanfogning av denna underfrågarad och allt annat.
För 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