窗口函数也称为OLAP函数
- 窗口函数的语法
<窗口函数> over (
[partition by 列清单】
order by <排序用列清单>
) - 能够作为窗口函数使用的函数
聚合函数(sum,acg,count,max,min)
rank,dense_rank,row_number等着专用窗口函数 - rank函数
select shohin_mei, shohin_bunrui, hanbai_tanka ,
rank() over (partition by shohin_bunrui
order by hanbai_tanka ) as ranking
from Shohin;- partition by 是对排序对象进行分组
- order by 是进行组内排序。
窗口函数兼具分组和排序两种功能。
通过partition by 分组后的记录集合称为窗口
- rank函数
计算排序时,如果存在相同位次的字句,则会跳过之后的位次 - dense_rank
计算排序时,即使存在相同位次的记录,也不会跳过之后的位次。 - row_number函数
直接排序下去,不管其他条件 - 窗口函数只能在select字句中使用,不能在where和group by字句中使用。
- 作为窗口函数使用聚合函数
select shohin-_id ,shohin_mei , hanbai_tanka,
sum (hanbai_tanka) over (order by shohin_id) as current_sumn
from Shohin;
按照排序一个个加起来
avg类似