简单来说,窗口函数有以下功能:
1)同时具有分组和排序的功能
2)不减少原表的行数
3)语法如下:
<窗口函数> over (partition by <用于分组的列名>
order by <用于排序的列名> [rows between ?? and ???])
一、排序窗口函数
① row_number() – 相同值排名顺延,返回结果1、2、3、4
② rank() – 相同结果排名相同,后续排名不连续,返回结果为 1、2、2、4
③ dense_rank() – 相同结果排名相同,后续排名顺延,返回结果为 1、2、2、3
二、聚合窗口函数
① sum() – 分组求和
② count() – 分组求总数
③ min() – 分组求最小值
④ max() – 分组求最大值
⑤ avg() --分组求均值