Можете да използвате 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.