开窗函数学习
一、开窗函数
对一组值进行操作,不像普通聚合函数那样需要用到group by子句对数据进行分组,能够在同一行中返回基础行的列和聚合列
开窗函数的语法形式:函数+over(partition by<分组用列> order by<排序用列>),表示对数据集按照分组用列进行分区,并且对每一个分区按照函数聚合计算。最终将计算结果按照排序用列排序后返回到该行。括号中的两个关键词partition by 和order by 可以只出现一个。
注:开窗函数不会互相干扰,因此在同一天查询语句汇总可以同时使用多个开窗函数
二、排序开窗函数
① row_number() -- 相同值排名顺延,返回结果1、2、3、4
② rank() -- 相同结果排名相同,后续排名不连续,返回结果为 1、2、2、4
③ dense_rank() -- 相同结果排名相同,后续排名顺延,返回结果为 1、2、2、3
④ ntile(n) -- 分组排名,将数据分为n组并返回对应组号1、2......n
三、聚合开窗函数
① sum() -- 分组求和
② count() -- 分组求总数
③ min() -- 分组求最小值
④ max() -- 分组求最大值
⑤ avg() --分组求均值
                    
                
                
            
        
浙公网安备 33010602011771号