Vấn đề này là khá phổ biến. Bạn cần một truy vấn con để loại bỏ dấu thời gian tối đa và ratetypeid (là cơ sở để nhóm), sau đó chọn mọi thứ khác từ một phép nối bên trong của các hàng truy vấn con này và mọi thứ khác.
Đối với 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