1、什么是窗口函数
窗口函数可以看作是在分区对记录执行操作的函数,窗口函数功能与group by相似,但不会改变记录行数,因此常用于排名,TopN操作。
2.窗口函数语法形式
窗口函数 over ([partition by 字段名] [order by 字段名])
over必选:用于指定函数执行的窗口范围,若后面括号中什么都不写,窗口函数将基于所有行进行计算;如果不为空,则支持以下2种语法设置窗口
partition by可选:指定分组字段,窗口函数在不同的分组上分别执行
order by可选:指定排序字段,窗口函数将根据记录排序后的顺序进行编号
select emp_name,sum(salary) over() from employee e;
select emp_name,dept_id,salay, sum(salary) over (PARTITION BY dept_id) from employee e;
select emp_name,dept_id,salay, sum(salary)
over (PARTITION BY dept_id order by salsry)
from employees e;