Сначала попробуйте сами: на собеседовании подсказки не будет.
Курс действует с даты записи до следующей записи, значит на дату нужна последняя запись с value_day <= дата, включая саму дату. Заготовка берёт строго меньше и теряет курс, установленный в этот же день.
ORDER BY value_day DESC LIMIT 1 возвращает ровно одну строку. Для многих дат сразу такой подход превращается в LATERAL или в оконную функцию с last_value, но для одной даты этого достаточно.
SELECT rate FROM rates WHERE code = 'USD' AND value_day <= '2025-03-10' ORDER BY value_day DESC LIMIT 1