[코드카타] SQL 49 Product Price at a Given Date

Data_Student·2024년 11월 26일
0

코드카타

목록 보기
58/82

[코드카타] SQL 49 Product Price at a Given Date

49. Product Price at a Given Date
https://leetcode.com/problems/product-price-at-a-given-date/

Write a solution to find the prices of all products on 2019-08-16. 
Assume the price of all products before any change is 10.
with temp as (
select product_id, max(change_date) max_date
from Products
where change_date <= '2019-08-16'
group by product_id
)
select p.product_id, new_price price
from Products p
join temp t on p.product_id=t.product_id and p.change_date=t.max_date 
union all
select product_id, 10 as price
from Products
group by product_id
having min(change_date) > '2019-08-16'
order by product_id
최근 change_date에 따른 가격을 반영하는 것이 중요.
with문을 통해서 기준일(2019-08-16) 포함 이전의 물건 가격은 가장 최근에 
변경된 가격을 기준으로 선정하며, 이후 union all로 붙인 쿼리를 통해서 기준일 
이전 가격이 없다면 가겨을 '10'으로 고정
Join을 통해서 최근 change_date 구하기가 중요! ★★

0개의 댓글