Dette problem er ret almindeligt. Du skal bruge en underforespørgsel for at smide max timestamp og ratetypeid (som er grundlaget for gruppering) ud og derefter vælge alt andet fra en indre joinforbindelse af denne underforespørgselsrækker og alt andet.
For 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