SQL中的窗口函数总结

over()  窗口函数

语法结构:

分析函数 over(partition by 列名 order by 列名 rows between 开始位置 and 结束位置) 

partition by : 作用与group by 类似,实现分组功能

常与over一起使用的分析函数:

聚合函数:

avg(),sum(),max(),mean()

排名函数:

row_number() 产生不会重复的自增编号 (1,2,3,4,5,6.......)

rank()按照值排序的时候产生一个自增编号,值相等时会重复,有空位(eg:1,2,2,4,5,6,6,8...)

dense_rank()按照值排序的时候产生一个自增编号,值相等时会重复,无空位(1,2,2,2,3...)

其他函数:

lag(),lead(),ntile()

实例:

1.对所有员工的当前(to_date='9999-01-01')薪水按照salary进行按照1-N的排名,相同salary并列且按照emp_no升序排列

select emp_no,salary,dense_rank()over (order by salary desc) as t_rank

from salaries

order by salary desc,emp_no asc

你可能感兴趣的:(SQL中的窗口函数总结)