分析函数是对一组查询结果进行运算,然后获得结果,与聚合函数的区别在于每个组可以返回多行,聚合函数每组只返回一行。
语法:函数名(可选参数) over(可选分区句子,可选排序句子 )
可选分区句子(partition by):将查询结果分为不同的组,默认是将所有的结果作为一个分组。
可选排序句子(order by):将每个分区进行排序。
最常用的分析函数:
1.row_number
row_number函数返回一个唯一的值,当遇到相同数据时,排名还是依次递增。
2.dense_rank
dense_rank函数返回一个唯一的值,当遇到相同数据时,排名都是一样。
3.rank
rank函数返回一个唯一的值,当遇到相同数据时,排名都是一样。但与dense_rank不同的是排名会空出来,比如两个第5名,那么接下来就又没第六名了,第五名后面直接是第七名。