Anda dapat menggunakan ROW_NUMBER() untuk mengeluarkan catatan terbaru dalam 10 hari terakhir untuk setiap item:
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
Dalam subkueri, klausa WHERE melakukan pemfilteran pada rentang tanggal; ROW_NUMBER() memberikan peringkat untuk setiap record dalam grup record yang memiliki item_id yang sama, dengan record terbaru terlebih dahulu. Kemudian, kueri luar hanya memfilter dalam catatan yang memiliki nomor baris 1.