select product_id , growth , `date` from ( select product_id , price , start_date , end_date , last_value(price) over (partition by product_id order by start_date rows between unbounded preceding and unbounded following) - first_value(price) over (partition by product_id order by start_date rows between unbounded preceding and unbounded following) growth , lag(end_date, 1, '9999-01-01') over (partition by product_id order by start_date) `date` , row_number() over (partition by product_id order by end_date desc ) rk from price_change ) t1 where rk = 1
时间: 2024-02-10 09:12:29 浏览: 65
smarty内部日期函数html_select_date()用法实例分析
这是一个 SQL 查询语句,目的是查询产品的价格增长率以及价格变化的日期范围。具体来说,查询结果包括三个字段:产品 ID、价格增长率(growth)、价格变化的日期(date)。查询语句中包含了子查询和窗口函数的使用,用来计算每个产品的价格增长率和价格变化的日期。其中,last_value 和 first_value 函数用来计算价格变化的范围,lag 函数用来获取上一个价格变化的日期,row_number 函数用来给每个产品的价格变化记录进行排序。最后,外层查询根据每个产品最新的价格变化记录(rk=1)来筛选结果。
阅读全文