SQL窗口函数详解

1.窗口函数语法

 

 

<窗口函数> over (partition by <用于分组的列名>                order by <用于排序的列名>)

 

<窗口函数>的位置,可以放以下两种函数:

 

1) 专用窗口函数,比如rank, dense_rank, row_number等

2) 聚合函数,如sum. avg, count, max, min等

 

2.窗口函数有以下功能:

1)同时具有分组(partition by)和排序(order by)的功能

2)不减少原表的行数,所以经常用来在每组内排名

 

3.注意事项

窗口函数原则上只能写在select子句中

 

4.窗口函数使用场景

1)业务需求“在每组内排名”,比如:

排名问题:每个部门按业绩来排名

topN问题:找出每个部门排名前N的员工进行奖励

你可能感兴趣的:(SQL,sql)