Du kan använda ROW_NUMBER() för att ta fram den senaste posten under de senaste 10 dagarna för varje objekt:
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
I underfrågan filtrerar WHERE-satsen på datumintervallet; ROW_NUMBER() tilldelar en rangordning till varje post inom grupper av poster som har samma item_id, med den senaste posten först. Sedan filtrerar den yttre frågan bara i poster med rad nummer 1.