ROW_NUMBER()を使用して、各アイテムの過去10日以内の最新のレコードを引き出すことができます。
SELECT *
FROM (
SELECT
DATE(datetime),
item_id,
price AS most_recent_price_within_last_10days,
ROW_NUMBER() OVER(PARTITION BY item_id ORDER BY datetime DESC) rn
FROM ...
WHERE datetime > NOW() - INTERVAL '10 DAY'
) x WHERE rn = 1
サブクエリでは、WHERE句が日付範囲のフィルタリングを行います。 ROW_NUMBER()は、同じitem_idを持つレコードのグループ内の各レコードにランクを割り当て、最新のレコードが最初になります。次に、外部クエリは行番号1のレコードをフィルタリングするだけです。