U kunt ROW_NUMBER() gebruiken om de meest recente record van de afgelopen 10 dagen voor elk item op te halen:
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
In de subquery doet de WHERE-component het filteren op het datumbereik; ROW_NUMBER() wijst een rang toe aan elke record binnen groepen records met dezelfde item_id, met de meest recente record eerst. Vervolgens filtert de buitenste query alleen records met rijnummer 1.