SQL窗口函数

1、什么是窗口函数

        窗口函数可以看作是在分区对记录执行操作的函数,窗口函数功能与group by相似,但不会改变记录行数,因此常用于排名,TopN操作。

SQL窗口函数_第1张图片

 2.窗口函数语法形式

窗口函数 over ([partition by 字段名] [order by 字段名])

over必选:用于指定函数执行的窗口范围,若后面括号中什么都不写,窗口函数将基于所有行进行计算;如果不为空,则支持以下2种语法设置窗口

partition by可选:指定分组字段,窗口函数在不同的分组上分别执行

order by可选:指定排序字段,窗口函数将根据记录排序后的顺序进行编号

select emp_name,sum(salary) over() from employee e;

SQL窗口函数_第2张图片

 select emp_name,dept_id,salay, sum(salary) over (PARTITION BY dept_id) from employee e;

SQL窗口函数_第3张图片

select emp_name,dept_id,salay, sum(salary) 
over (PARTITION BY dept_id order by salsry)
from employees e;

SQL窗口函数_第4张图片 

 

 

你可能感兴趣的:(数据库)