Получение разницы в ценах в диапазоне двух дат

Имеется таблица куда раз в сутки добавляются строки, где содержится ID продукта, его цена, название и время в которое была добавлена строка.

CREATE TABLE products (
    id integer GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
    product_id integer NOT NULL,
    title text NOT NULL,
    price double precision NOT NULL,
    checked_at timestamp with time zone DEFAULT now()
);

Данные в таблице products выглядят таким образом:

id product_id title price checked_at
1 1000 Арбуз 50 2022-07-19 10:00:00
2 2000 Яблоко 30 2022-07-19 10:00:00
3 3000 Груша 20 2022-07-19 10:00:00
4 1000 Арбуз 100 2022-07-20 10:00:00
5 2000 Яблоко 50 2022-07-20 10:00:00
6 3000 Груша 35 2022-07-20 10:00:00
7 1000 Арбуз 150 2022-07-21 10:00:00
8 2000 Яблоко 50 2022-07-21 10:00:00
9 3000 Груша 60 2022-07-21 10:00:00

Мне необходимо передавать диапазон дат (к примеру от 2022-07-19 до 2022-07-21) и получать разницу в ценах всех уникальных продуктов, то есть ответ должен быть такой:

product_id title price_difference
1000 Арбуз 100
2000 Яблоко 20
3000 Груша 40

Я разобрался только с самым началом, где мне необходимо получить ID всех уникальных товаров в таблице с помощью DISTINCT. Дальше мне необходимо найти строки, которые ближе всего к диапазону дат.


Ответы (0 шт):