Задача: Напишите SQL-запрос, чтобы найти цены на все товары на 2019-08-16. Предположим, что цены на все товары будут до того, как произойдет какое-либо изменение 10.
Дано:
Решение:
select distinct product_id, 10 as price
from Products
group by product_id
having (min(change_date) > "2019-08-16")
union
select p2.product_id, new_price
from Products p2
where (p2.product_id, p2.change_date) in
(select product_id, max(change_date) as recent_date
from Products
where change_date <= "2019-08-16"
group by product_id)
ORDER BY product_id ASC
Результат:
Источник: https://leetcode.com/problems/product-price-at-a-given-date/