概述
一、关键点
1、窗口函数可以分为两类。
一是 将SUM、MAX、MIN等聚合函数用在窗口函数中
二是 RANK、DENSE_RANK等排序用的专用窗口函数
专用窗口函数
- RANK函数
计算排序时,如果存在相同位次的记录,则会跳过之后的位次。
例)有 3 条记录排在第 1 位时:1 位、1 位、1 位、4 位……
- DENSE_RANK函数
同样是计算排序,即使存在相同位次的记录,也不会跳过之后的位次。
例)有 3 条记录排在第 1 位时:1 位、1 位、1 位、2 位……
- ROW_NUMBER函数
赋予唯一的连续位次。
2、原则上,窗口函数只能在SELECT子句中使用。窗口函数OVER 中的ORDER BY 子句并不会影响最终结果的排序。其只是用来决定窗口函数按何种顺序计算。
二、练习
5.1 可以进行移动搜索,得到当前的最大商品价格。
5.2
SELECT product_id
,product_name
,regist_date
,sale_price
,SUM(sale_price) OVER (
partition by regist_date
ORDER BY regist_date ) AS sum_price
FROM product
5.3.1
就不会进行窗口划分,整个表进行直接的排序和计算。
5.3.2
因为order by是最后执行的。
最后
以上就是犹豫月饼为你收集整理的sql05(11.25-11.26)的全部内容,希望文章能够帮你解决sql05(11.25-11.26)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复