窗口函數(shù)也稱為OLAP函數(shù)
- 窗口函數(shù)的語法
<窗口函數(shù)> over (
[partition by 列清單】
order by <排序用列清單>
) - 能夠作為窗口函數(shù)使用的函數(shù)
聚合函數(shù)(sum,acg,count,max,min)
rank,dense_rank,row_number等著專用窗口函數(shù) - rank函數(shù)
select shohin_mei, shohin_bunrui, hanbai_tanka ,
rank() over (partition by shohin_bunrui
order by hanbai_tanka ) as ranking
from Shohin;- partition by 是對排序?qū)ο筮M行分組
- order by 是進行組內(nèi)排序谓着。
窗口函數(shù)兼具分組和排序兩種功能。
通過partition by 分組后的記錄集合稱為窗口
- rank函數(shù)
計算排序時柜与,如果存在相同位次的字句凯亮,則會跳過之后的位次 - dense_rank
計算排序時犯犁,即使存在相同位次的記錄,也不會跳過之后的位次。 - row_number函數(shù)
直接排序下去遣鼓,不管其他條件 - 窗口函數(shù)只能在select字句中使用,不能在where和group by字句中使用重贺。
- 作為窗口函數(shù)使用聚合函數(shù)
select shohin-_id ,shohin_mei , hanbai_tanka,
sum (hanbai_tanka) over (order by shohin_id) as current_sumn
from Shohin;
按照排序一個個加起來
avg類似