本文主要是介绍34 - 指定日期的产品价格(高频 SQL 50 题基础版),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
34 - 指定日期的产品价格
-- row_number(行号) 生成连续的序号,不考虑分数相同
-- 在'2019-08-16'之前改的价格,使用最近一期的日期,没有在'2019-08-16'之前改的价格,默认价格为10
select t.product_id, t.new_price as price
from (select *,row_number() over (PARTITION BY product_id order by change_date desc) as row_numfrom Productswhere change_date<='2019-08-16') as t
where t.row_num=1
union
-- 没有在'2019-08-16'之前改的价格,默认价格为10
select product_id, 10 as price
from Products
group by product_id
having min(change_date)>'2019-08-16';
这篇关于34 - 指定日期的产品价格(高频 SQL 50 题基础版)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!