佛系随缘投一波寒假,牛客上了新sql继续开刷,最近没有好好看书所以记录一下sql的查漏补缺。
研究内容 | 语言 | 日期 |
---|---|---|
数据库 | sql | 2021年12月2日 |
一、sql开窗函数-移动窗口
前排感谢参考博客:点我看原贴!
1. 最原始的开窗:按照商品类型分组,按照销售价格排序,获得每组的价格排名。rank是跳序重复的排序,dense_rank是并序重复,row_number是顺序不重复,不再赘述。当然partition不是必须的~
select product_name, product_type, sale_price,
rank () over (order by sale_price) as ranking,
dense_rank () over (order by sale_price) as dense_ranking,
row_number () over (order by sale_price) as row_num
from Product;
2. 移动平均的计算方法:
①窗口函数就是将表以窗口为单位进行分割,并在其中进行排序的函数。其中还包含在窗口中指定更加详细的汇总范围的备选功能,该备选功能中的汇总范围称为框架。指定最靠近的3行做为汇总对象:
select product_id, product_name, sale_price,
avg (sale_price