力扣SQL Top50: 指定日期的產品價格
1164. 指定日期的產品價格
在left joinp2表的要判斷當新價格為 null 的時候,要給它一個默認的初始價格10,因為原題表明,每個產品的初始價格就是10
where in用于where 子句中指定多個可能值。可以看做是多個or的簡寫形式,并且in會自動處理重復值
select p1.product_id, IFNULL(p2.new_price, 10) as price
from Products p1
left join (
select distinct product_id, new_price
from Products
where (product_id, change_date) in (
select product_id, max(change_date)
from Products
where change_date <= '2019-08-16'
group by product_id
)
) as p2
on p1.product_id = p2.product_id
group by p1.product_id;

浙公網安備 33010602011771號